Zum Inhalt springen

Volrath1987

Mitglieder
  • Gesamte Inhalte

    10
  • Benutzer seit

  • Letzter Besuch

  1. public static void uploadObject(String path, Object o) { try { FTPClient client = new FTPClient("ftp.XXXX"); client.login("XXX", "XXX"); InputStream in = (InputStream) o ; client.put(in, path+".jso"); }catch(Exception e) { e.printStackTrace(); } } java.lang.ClassCastException: java.lang.Object cannot be cast to java.io.InputStream at StudyApplication.ftp2.uploadObject(ftp2.java:43) at StudyApplication.ftp2.main(ftp2.java:75) Das Problem stellt die put methode des FTPs da nämlich dass man nur einen InputStream uploaden kann . Ansich kein Problem aber ich krieg meine datei einfach nicht zu einem InputStream ohne sie auf die Festplatte einmal speichern zu müssen . (einen ObjectInputStream würde auch angenommen werden ) Jedenfalls geht es darum dass man in der Methode ein Object übergibt und diese dann über das ftp package in den angegeben path upgeloaded werden soll Ich benutzte com.enterprisedt.net.ftp Volrath
  2. public static void uploadObject(String path, Object o) { try { FTPClient client = new FTPClient("ftp.XXXX"); client.login("XXX", "XXX"); InputStream in = (InputStream) o ; client.put(in, path); }catch(Exception e) { e.printStackTrace(); } } Das Problem stellt die put methode des FTPs da nämlich dass man nur einen InputStream uploaden kann . Ansich kein Problem aber ich krieg meine datei einfach nicht zu einem InputStream ohne sie auf die Festplatte einmal speichern zu müssen . (einen ObjectInputStream würde auch angenommen werden ) Jedenfalls geht es darum dass man in der Methode ein Object übergibt und diese dann über das ftp package in den angegeben path upgeloaded werden soll Ich benutzte com.enterprisedt.net.ftp Volrath
  3. Hallo , ich suche nach einem Weg ein Object zu einem (Object) InputStream zu casten . Vielen Dank Vollrath
  4. Volrath1987

    Cast Probleme

    yaa es funtzt hab meinen FTP Client geändert habs mal mit com.enterprisedt.net.ftp.FileTransferClient; gemacht und es klappt Für alle die es intressiert Code: System.out.println(ftp.getRemoteDirectory()); System.out.println("Excist: "+ftp.exists(path)); InputStream r = ftp.downloadStream(path); o = new ObjectInputStream®; Student s = (Student ) o.readObject();
  5. Volrath1987

    Cast Probleme

    ich hab dich in icq geadded ....
  6. Volrath1987

    Cast Probleme

    import java.io.InputStream; public class Student implements java.io.Serializable { public String firstName,secondName,password,mail,nick; public double averageGrade[] ; public double averageGradeWithLN[]; public double Credits ; public int actSem ; public ExamP examP[] = new ExamP[0]; public ExamLN examLN[] = new ExamLN[0]; public Student(String firstName, String secondName,String nick,String password,String mail, int actSem, int allSem) { this.firstName = firstName;this.secondName = secondName; this.actSem = actSem;this.averageGrade= new double[allSem];this.averageGradeWithLN = new double[allSem]; this.password = password ; this.mail = mail; this.nick = nick ; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setSecondName(String secondName) { this.secondName = secondName; } public void setPassword(String password) { this.password = password; } public void setMail(String mail) { this.mail = mail; } public void setActSem(int actSem) { this.actSem = actSem; } public void addExamP(ExamP examP) { boolean isExam = false; for(int i=0;i<this.examP.length;i++) { if(this.examP[i].lecture.equals(examP.lecture)){isExam=true;}; } if(!isExam) { ExamP[] tmp = new ExamP[this.examP.length]; for(int i=0;i<this.examP.length;i++){tmp[i] = new ExamP(); tmp[i] = this.examP[i];} this.examP = new ExamP[tmp.length+1]; for(int i=0;i<tmp.length;i++){this.examP[i] = tmp[i];} this.examP[this.examP.length-1] = examP; setAverageGrade(); } } public void addExamLN(ExamLN examLN) { boolean isExam = false; for(int i=0;i<this.examLN.length;i++) { if(this.examLN[i].lecture.equals(examLN.lecture)){isExam=true;}; } if(!isExam) { ExamLN[] tmp = new ExamLN[this.examLN.length]; for(int i= 0; i<this.examLN.length;i++){tmp[i] = new ExamLN(); tmp[i] = this.examLN[i];} this.examLN = new ExamLN[tmp.length+1]; for(int i= 0; i<tmp.length;i++){this.examLN[i] = tmp[i];} this.examLN[this.examLN.length-1] = examLN; } } public String printExam() { String text = ""; for(int i= 0; i < this.examP.length;i++) { text += this.examP[i].toString(); } for(int i= 0; i < this.examLN.length;i++) { text += this.examLN[i].toString(); } return text ; } public String printExamP() { String text = ""; for(int i= 0; i < this.examP.length;i++) { text += this.examP[i].toString(); } return text ; } public String printExamLN() { String text = ""; for(int i= 0; i < this.examLN.length;i++) { text += this.examLN[i].toString(); } return text ; } private void setAverageGrade() { double credits=0, averageGrade=0 ; for(int i=0;i<this.averageGrade.length;i++) { for(int j=0;j<this.examP.length;j++) { if(this.examP[j].sem == i && this.examP[j].passed || i==0 && this.examP[j].passed) { averageGrade += this.examP[j].grade*this.examP[j].credits; credits += this.examP[j].credits; } } this.averageGrade[i] = averageGrade/credits; averageGrade = 0; credits = 0; } } private void setAverageGradeWithLN() { } } wobei die Klasse Student auch Variablen der Klasse Exam hat aber das spielt ja eigentlich erstmal keine Rolle . Kannst ja alles was mit Exam zutun hat zunächst löschen und versuchen einen Studenten anzulegen und dann wieder zu laden Mit dem Lokal instanziieren könnte ich später probleme kriegen weil ich das ganze als applet haben möchte und soweit ich weiß applets nicht auf die festplatte zugreifen dürfen
  7. Volrath1987

    Cast Probleme

    oder vllt kannst du mir einfach erklären wie ich über apache ftp (oder ein anderes ftpClient ) ein objekt einer von mir erzeugten Klasse abspeichere und später wieder laden kann dass wenn ich z.b. sage sage Student Volrath hat die und die Eigenschaften ich wieder diesen Studenten laden kann
  8. Volrath1987

    Cast Probleme

    Also ich speichere ja nicht direkt die .class ab sondern ein Objekt von Student z.b. sieht der Code zum lokalen speichern des Objekten Student so aus private void writeStudent(Student student) { try { File file2 = new File("C:/StudyApplication/"+this.name+"/Student"); if(!file2.exists()){ file2.mkdirs();} FileOutputStream file = new FileOutputStream("C:/StudyApplication/"+this.name +"/Student/"+student.firstName+student.secondName+".jso" ); ObjectOutputStream o = new ObjectOutputStream( file ); o.writeObject ( student ); o.close(); }catch ( IOException e ) { System.err.println( e ); } } und das laden wäre dann ObjectInputStream r = new ObjectInputStream(new BufferedInputStream( new FileInputStream("PfadDerDatei desStudentenDassGeladenWerdenSoll"); Student s =(Student) r.readObject(); Lokal hat das so funktioniert , das problem ist hier dass ich das über ftp machen möchte also alles online das speichern laden etc... Das Problem liegt daran dass ich mit den ftp Methoden 1 ftp.retrieveFile(String arg0, OutputStream arg1) 2 ftp.retrieveFileStream(String remote) 1. Einen OutputStream kriege und mit 2 einen InputStream bekomme wobei ich dann diese irgendwie wieder zun einem ObjectInputStream casten muss damit ich sie dann mit r.readObject(); (wie lokal) wieder zu meinem Studenten caste
  9. Volrath1987

    Cast Probleme

    ja genau also ich möchte z.b. einmal einen Studenten erstellen mit name , alter etc... und dieses Object z.b. Student Volrath mit all seinen zugewiesenen Variablen online in einer Datei packen und ihn dann später wieder laden können . Meine Klassen sind alle serializable das Probleme liegt irgendwie bei dem Hin und Her casten dass es nicht funktioniert Ich hoffe du weisst ne Lösung weil ich jetzt schon echt lange an diesem Probleme sitzte und langsam verzweifle
  10. Volrath1987

    Cast Probleme

    Hallo liebe Community, ich hab schon der ganzen Tag damit verbracht dieses Problem irgendwie zu lösen aber ich krieg es einfach nicht hin. Ich hoffe ihr könnt mir helfen Zu meinem Problem : Ich möchte auf einem FTP Server Objekte einer von mir geschriebenen Klassen abspeichern . Das Speichern ist kein Problem allerdings das lesen vorallem wenn ich versuche eine gelesene Datei wieder zurück zu meiner Klasse zu casten. Bisher habe ich immer Lokal so gecastet : ObjectInputStream r = new ObjectInputStream(new BufferedInputStream( new FileInputStream(uniDir[i]))); this.university[i] =(University) r.readObject(); Wobei University meine geschriebene Klasse ist . Dies lief wunderbar und jetzt wollte ich eine auf meinem FTP Server liegende Datei wieder zu meiner Klasse casten. Doch das klappt einfach nicht . Ich habs mal so versucht : Object o = new Object() ; ByteArrayOutputStream bout = new ByteArrayOutputStream (); ftp.retrieveFile( path, bout) // path ist der Pfad wo die Datei liegt ObjectOutputStream t = new ObjectOutputStream(bout) t.writeObject(o); Student s = (Student) o ; Es taucht zwar keine Exception auf, allerdings haben die Variablen meines Student s alle eine zuweisung auf null, wo doch mein Ziel war diesen Studenten von der Online Datei wiederherzustellen. Ich bedanke mich für eure Zeit Volrath Nach oben

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...