sinnlose Exception

Status
Nicht offen für weitere Antworten.

michael p

Mitglied
Hallo,

hab eine Methode geschrieben, um über ObjectInputStream aus ner Datei zu lesen.
Funktioniert auch alles nur es wird halt auch eine EOFException geworfen.
Unterdrücke ich sie, so wird alles wunderbar ausgegeben.

Code:
	public static void Datei_laden(){
		
		File aDatei=new File(Dateiadresse,Dateiname);
		Aktienticker akt=new Aktienticker();
		if(aDatei.exists()){
			
			
			Handelbar h;
			try{
				FileInputStream fis=new FileInputStream("aDatei.ser");
				ObjectInputStream is=new ObjectInputStream(fis);	
				while((h=(Handelbar)is.readObject())!=null){
				
	
				akt.speichernKauf(h);
				
				}
				is.close();
				
				
				
			}
			catch(ClassNotFoundException cnfe){
				
				System.out.println("Die Datei konnte nicht gefunden werden");
				cnfe.getMessage();
				cnfe.printStackTrace();
			}
			
			catch(EOFException eofe){//es funktioniert, aber ansonsten wird diese Exception geworfen
				eofe.getMessage();
				eofe.printStackTrace();
			}
			catch(IOException ioex){
				System.out.println("Es ist ein Fehler beim Laden der Datei "+Dateiadresse+""+Dateiname+" aufgetreten");
				ioex.getMessage();
				ioex.printStackTrace();
			}
			
		}	
	}

In der Java -Api steht dazu folgendes
Signals that an end of file or end of stream has been reached unexpectedly during input.

keine Ahnung wie ich das beheben soll
Weis jemand wo der Fehler ist?
Danke für die Antworten im Voraus

mfg
michael p
 

Campino

Top Contributor
Code:
//br: BufferedReader
//line: String
while((line=br.readLine())!=null){
}
ließt aus einem File, bis readLine() null zurückgibt. In der API steht zu readLine:
Returns:
A String containing the contents of the line, not including any line-termination characters, or null if the end of the stream has been reached
readLine() gibt also eine Zeile oder, wenn das Dateiende erreicht ist, null zurück. Wenn null zurückgegeben wird, ist die Schleifenbedingung nichtmehr erfüllt. Nur deshalb funktioniert die Schleife oben.

Bei readObject() steht:
Returns:
the object read from the stream
Von einer null bei erreichen des Dateiendes steht da nichts, deshalb kann die Schleife so nicht funktionieren. Stattdessen wirft readObject() eine EOFException, was deine Schleife auch abbricht. Also keine Sorgen machen und einfach so lassen, es funktioniert ja, ärgerlich wäre nur, wenn dadurch eine Endlosschleife entstehen würde.

Als einzige Alternative könntest du die Anzahl der Handelbars als erstes in die Datei schreiben und dann mit einer for- Schleife arbeiten.

campino
 

michael p

Mitglied
hm schade hab available probiert, bringt aber nichts, es wird gar nichts mehr ausgegeben.

Mir ist jetzt aber ein anderer Fehler aufgefallen :shock:
Und zwar überschreibt ObjectOutputStream die Objekte, die bereits in der Datei stehen, immer wieder.

Code:
	public static void Datei_fuellen(ArrayList<Handelbar>portfolio){

		try{
	//		File Datei=new File(Dateiadresse,Dateiname);
			FileOutputStream fs=new FileOutputStream("aDatei.ser");
			ObjectOutputStream os=new ObjectOutputStream(fs);
			for(Handelbar handel:portfolio){
				os.writeObject(handel);
			}
			os.close();
			
		}
		catch(IOException ioex){
			System.out.println("Es ist ein Fehler aufgetreten");
		
		}
	}

habs jetzt mit writeUnshared versucht, aber das überschreibt(löscht) beim Speichern eines neuen Objekts
gleich den gesamten Inhalt der Datei ???:L
In der Insel steht auch nichts sinnvolles dazu.

hoffe jemand kann mir helfen

michael p
 
S

SlaterB

Gast
was ist denn aktuell deine Frage?

willst du eine bestehende Datei erweitern statt sie zu überschreiben?

public FileOutputStream(File file,
boolean append)
throws FileNotFoundExceptionCreates

a file output stream to write to the file represented by the specified File object. If the second argument is true, then bytes will be written to the end of the file rather than the beginning. A new FileDescriptor object is created to represent this file connection.
First, if there is a security manager, its checkWrite method is called with the path represented by the file argument as its argument.

If the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason then a FileNotFoundException is thrown.


Parameters:
file - the file to be opened for writing.
append - if true, then bytes will be written to the end of the file rather than the beginning
 

michael p

Mitglied
naja vielleicht hätte ich nen neuen Thread machen sollen.

willst du eine bestehende Datei erweitern statt sie zu überschreiben?

Genau aber mit einem ObjectOutputStream und nicht mit FileOutputStream.
So einen Konstruktor mit append, wie für FileOutputStream gibt es ja nicht,
zumindest in der Java Api nicht. Hab das jetzt so gelöst, indem ich alles erstmal aus der Datei
lade und dann alles wieder reinschreibe, aber das ist ziemlich langsam.

Gibt es denn keine Möglichkeit eine Datei mit ObjectOutputStream zu erweitern und nicht zu überschreiben ?
 
S

SlaterB

Gast
...

schau dir deinen Quellcode an, such mal nach der Buchstabenfolge
F i l e O u p u t ...
gefunden? also hast du doch einen FileOutputStream..

das geht selbstverständlich bei einem ObjectOutputStream nicht,
denn der hat nichts mit Dateien am Hut, der weiß gar nicht was mit den Daten gemacht wird,
das ist allein die Aufgabe des FileOutputStreams
 

michael p

Mitglied
oh man hab den Wald vor lauter Bäumen nicht gesehen.

Nur wenn ich das mache, wird eine StreamCorruptedException ausgegeben. :?: :?:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
G Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
J Exception unreachable Java Basics - Anfänger-Themen 12
O unchecked Exception Java Basics - Anfänger-Themen 4
P Exception werfen Java Basics - Anfänger-Themen 15
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
S Exception bei Verwendung von LocalDate Java Basics - Anfänger-Themen 19
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
D Warum die Nullpointer Exception Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
I OOP Was ist die "Exception Hierarchie" ? Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
Mosquera Exception Java Basics - Anfänger-Themen 5
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
N Nullpointer exception Java Basics - Anfänger-Themen 4
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
S Array Grenzen-Exception Java Basics - Anfänger-Themen 11
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D Erste Schritte Java.lang.NullPointer.Exception Java Basics - Anfänger-Themen 8
G Arrays out of Bounds exception Java Basics - Anfänger-Themen 2
H Compiler-Fehler Out of Bunce Exception bei einem Char Java Basics - Anfänger-Themen 6
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
C Null Pointer Exception Java Basics - Anfänger-Themen 10
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
G Null Pointer Exception Java Basics - Anfänger-Themen 4
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
O Exception bei Parse-Vorgang Java Basics - Anfänger-Themen 17
T Exception Problem Java Basics - Anfänger-Themen 5
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
W Nullpointer Exception bei .add(...) Java Basics - Anfänger-Themen 6
L Input/Output InputMismatch.Exception Java Basics - Anfänger-Themen 7
B Exception Liste von Liste Java Basics - Anfänger-Themen 3
D Throw Exception Java Basics - Anfänger-Themen 2
MiMa JavaDoc Exception @throws schlagen an Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
M Exception soll Werte mitgeliefert bekommen Java Basics - Anfänger-Themen 12
M Selbstdefinierte Exception Java Basics - Anfänger-Themen 5
B Exception Throwable Java Basics - Anfänger-Themen 11
M Erste Schritte Start Methode - Exception Java Basics - Anfänger-Themen 1
F Operatoren Wieso fliegt hier eine NullPointer Exception :( Java Basics - Anfänger-Themen 3
F nullpointer exception - arrayerstellung Java Basics - Anfänger-Themen 4
K Iterator-Interface implementieren mit Exception Handlung Java Basics - Anfänger-Themen 1
H Erste Schritte Exception: 0 Java Basics - Anfänger-Themen 2
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
L [JFrame] Exception - woher? Java Basics - Anfänger-Themen 8
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4
R "Missbrauch" von Exception zum Programmfluss Java Basics - Anfänger-Themen 1
U Exception: OutOfMemoryError Java Basics - Anfänger-Themen 11
A Int Eingabe: String mit Exception abfangen. Aber wie? Java Basics - Anfänger-Themen 3
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
V Threads Exception in Thread behandeln Java Basics - Anfänger-Themen 3
F Java exception bei der Ausführung Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben