aus ObjectInputStream muß FileInputStream werden

Status
Nicht offen für weitere Antworten.

wicky

Mitglied
moin,
ich will aus einem ObjectInputStream einen FileInputStream machen. sprich ich habe eine deserialize Methode mit folgender signatur (public ArrayList deserialize (String filename) throws Exception). das ganze mit ObjectInputStream realisiert. jetzt soll meine andere Methode die gleiche Signatur haben jedoch mit FileInputStream realisiert werden. hier noch der code wo ich es mit ObjectInputStream gemacht habe.

Code:
	    public ArrayList deserialize (String filename) throws Exception	{
	    	
		  	ArrayList alleElemente = null;
		    try
		    {
		      FileInputStream inPut = new FileInputStream( filename );
		      ObjectInputStream inPut = new ObjectInputStream( file );
		      	   
		      alleElemente = (ArrayList) inPut.read();
		      inPut.close();

		    }
		    catch ( IOException e ) { 
		    	throw new Exception( e ) ; 
		    }
		    catch ( ClassNotFoundException e ) { 
		    	throw new Exception( e ); 
		    } 
		    return alleElemente;
		  }
	}
viele Grüße und Danke schon mal.
wicky
 
R

Roar

Gast
dann musst du der zweiten methode wohl einen anderen namen geben.. oder wo is das problem :?:
 

wicky

Mitglied
ich muß nicht beide methoden gleichzeitig in einem programm benutzen. es geht nur um die signatur das diese gleich ist.
 
R

Roar

Gast
achso.. du willst in der methode keinen ObjectStream mehr verwenden sondern einen FileInputStream? mit nem FIleInputStream kannst du aber keine Objekte deserialisieren.
 

wicky

Mitglied
aber es muß eine möglichkeit geben. mein ausbilder hat gemeint das geht und ich hab echt auch keine ahnung wie das gehen soll. probier schon den ganzen morgen herum. wenn man die signatur der methode ändert ist es kein problem aber die muß gleich bleiben alles andere egal. greetz
 
R

Roar

Gast
wiewas? was hat denn jetzt die signatur der methode zu tun? kapier ich nicht. wo ist das problem?
außerdem kann dein code auch nicht gehen:
FileInputStream inPut = new FileInputStream( filename );
ObjectInputStream inPut = new ObjectInputStream( file );
2 mal inPut !?

und was willst du nun mit dem FileInputStream? willst du ihn als argument dem ObjectrInputStream übergeben? hm ja musst ja gibt ja kein andren konstruktor...
 
B

bygones

Gast
ich versteh auch nicht so recht was das soll...
mit einem FileInputStream kannst du allerhöchsten bytes auslesen - damit zu serialisieren bzw. deserialisieren ist nicht witzig.....

Frag lieber nochmal nach was genau damit gemeint ist ?!
 

wicky

Mitglied
ich zeig euch wie das gemeint ist anhand einer anderen metohde.

hier die Metohde mit ObjectInputStream
Code:
 public  void serialize( String filename, ShoppingListNeu liste )
	  {
	    try
	    {
	      FileOutputStream file = new FileOutputStream( filename );
	      ObjectOutputStream outPut = new ObjectOutputStream( file );
	      outPut.writeObject( liste.getArrayList() );
	      outPut.flush();
	      outPut.close();
	    }
	    catch ( IOException e ) { System.err.println( e ); }
	  }

und hier die Methode mit der gleichen signatur ohne ObjectInputStream nur mit FileInputStream
Code:
	public void serialize( String filename, ShoppingListNeu liste ) {
		
	    try {
	      FileOutputStream outPutStream = new FileOutputStream( filename );

	      for (int i = 0; i < liste.getArtikelAnzahl(); i++)	{
	      	  ShoppingElement element =  liste.alleArtikelZurueckgeben()[i];
		      outPutStream.write( i);
		      outPutStream.close();
		      System.out.println("Die Liste wurde gespeichert");
	      }
	    } catch ( Exception e ) { 
	      	System.out.println(e);
	    }
	}

Vielleicht hilft das nun zum verständnis. das gleiche soll ich mit der methode die ich oben gepostet habe machen.

PS:mad:roar das mit den 2 inputs läuft wunderbar.
 
B

bygones

Gast
bin ich blind oder machen deine methoden was komplett anderes ?!

in der ersten schreibst du ein Object rein (scheinbar die Liste)...
in der zweiten seh ich nur outPutStream.write( i); -> da schreibst du nur ein int !!
außerdem wenn ich die klammern richtig seh schließt du den stream und willst dann noch was schreiben ?

du speicherst die Liste da nicht ?!
 
B

Beni

Gast
Das wird nicht gehen, jede Methode muss eine einzigartige Signatur haben (damit man sie unterscheiden kann).

Du könntest vielleicht direkt den Stream übergeben (dann gibt es andere Signaturen), oder die Namen etwas anpassen...
 

wicky

Mitglied
so nun kann ich es ech zeigenwie ich es gemeint habe.

einmal die methode mit ObjectOutputStream
Code:
public  void serialize( String filename, ShoppingListNeu liste ) 
     { 
       try 
       { 
         FileOutputStream file = new FileOutputStream( filename ); 
         ObjectOutputStream outPut = new ObjectOutputStream( file ); 
         outPut.writeObject( liste.getArrayList() ); 
         outPut.flush(); 
         outPut.close(); 
       } 
       catch ( IOException e ) { System.err.println( e ); } 
     }

und das andere mal gleiche signatur gleiche funktion nur mit FileOutputStream

Code:
	public void serialize( String filename, ShoppingListNeu liste ) {
		
	    try {
	      FileOutputStream outPutStream = new FileOutputStream( filename );
	      for (int i = 0; i < liste.getArtikelAnzahl(); i++)	{
		      String semikolon = ";";
	      	  ShoppingElement element =  liste.alleArtikelZurueckgeben()[i]; 	  
		      outPutStream.write( element.getArtikelName().getBytes() ); 
		      outPutStream.write(semikolon.getBytes());
		      String mengeAlsString = "" + element.getMenge();
		      String umbruch = "\n";
		      outPutStream.write( mengeAlsString.getBytes()  );
		      outPutStream.write(semikolon.getBytes());
		      outPutStream.write(umbruch.getBytes());
	      }
	      outPutStream.close();
	      System.out.println("Die Liste wurde gespeichert");
	    } catch ( Exception e ) { 
	      	System.out.println(e);
	    }
	}

und das ganze soll ich nun auch noch mit ObjectInput und FileInputstream machen.
grüße
 
B

bygones

Gast
mhm - ich hätte das so gemacht dass ich als erstes immer schreibe wieviele bytes das object hat das ich schreibe....
du hast nun zwar eine delimiter drinnen, aber beim einlesen weißt du auch nicht wieviel bytes du lesen musst bis der delimiter komt....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
V Klassen ObjectInputStream ->ReadObject Probleme Java Basics - Anfänger-Themen 5
K String aus ObjectInputStream ausgeben Java Basics - Anfänger-Themen 1
M Input/Output ObjectInputStream Java Basics - Anfänger-Themen 2
S ObjectInputStream Java Basics - Anfänger-Themen 21
G Input/Output ObjectInputStream Java Basics - Anfänger-Themen 5
W ObjectInputStream öffnet nicht Java Basics - Anfänger-Themen 4
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
V ObjectOutputStream/ObjectInputStream eines Objectes fuer mehrere Threads Java Basics - Anfänger-Themen 6
G ObjectInputStream: ClassNotFoundException Java Basics - Anfänger-Themen 2
M ObjectInputStream, Object und Vector<Object> Java Basics - Anfänger-Themen 4
E Verständnisfrage/Problem beim lesen mit ObjectInputStream Java Basics - Anfänger-Themen 3
L wo muß die Jar stehen, Netbeans, Compile Java Basics - Anfänger-Themen 3
L wo muß den die Exception stehen? Java Basics - Anfänger-Themen 29
M muß durch muss ersetzen Java Basics - Anfänger-Themen 7
B OutputStream in FileInputStream? Java Basics - Anfänger-Themen 9
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B FileInputStream entpacken und Zeile für Zeile entpacken Java Basics - Anfänger-Themen 1
V FileInputStream - read() Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
N FileInputstream und BinaryStream Java Basics - Anfänger-Themen 3
V FileInputStream auf ein swt.Image Java Basics - Anfänger-Themen 6
R FileInputStream findet Datei nicht Java Basics - Anfänger-Themen 5
C FileInputStream read() Overflow Problem Java Basics - Anfänger-Themen 6
C Datentypen Rückgabewert von "new FileInputStream" Java Basics - Anfänger-Themen 4
K FileInputStream in Jar Java Basics - Anfänger-Themen 5
megachucky FileInputStream findet nur absoluten Pfad, keinen Relativen ?! Java Basics - Anfänger-Themen 7
B FileInputStream schliessen: unreported Exception...must be caught Java Basics - Anfänger-Themen 6
W new FileInputStream() blockiert bei fifo (named pipe) Java Basics - Anfänger-Themen 2
G FileInputStream--> Zahlen aus Datei lesen Java Basics - Anfänger-Themen 7
G FileInputStream manipulieren Java Basics - Anfänger-Themen 6
B FileinputStream und BufferedInputStream Java Basics - Anfänger-Themen 12
P Fileinputstream to image? Java Basics - Anfänger-Themen 3
I FileInputStream global deklarieren Java Basics - Anfänger-Themen 2
G relativer Pfad bei FileInputStream Java Basics - Anfänger-Themen 11
T Unterschiedliche Werte beim FileInputStream Lesen Java Basics - Anfänger-Themen 2
F FileInputStream(File file) funzt net Java Basics - Anfänger-Themen 2
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
C FileInputStream sehr langsam Java Basics - Anfänger-Themen 5
Z FileInputStream bricht ab Java Basics - Anfänger-Themen 6
frau-u Probleme mit richtiger Verwendung von FileInputStream Java Basics - Anfänger-Themen 2
G FileInputStream Java Basics - Anfänger-Themen 6
C FileInputStream und FileOutputStream Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben