2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
420
420
EMPFEHLEN
-
Hallo allerseits,
die folgende Frage zum Codebeispiel habe ich aus einem Tutor-
System (Lehrsystem).
Die Antwort, die hierfür bezüglich Ausgabe gegeben wird,
deckt sich nicht mit meiner praktischen Nachprüfung.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Was wird hier ausgegeben? public class Serial { public static void main(String... args) throws Exception { NumberFormat format = NumberFormat.getInstance(Locale.ITALY); String x = format.format(12.2); ObjectOutputStream stream = new ObjectOutputStream(new FileOutputStream(new File("test"))); stream.writeObject(x); stream.writeInt(new Integer(10)); stream.writeInt(-12); stream.flush(); stream.close(); ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(new File("test"))); System.out.println(inputStream.readObject()); System.out.println(inputStream.readObject()); System.out.println(inputStream.readObject()); } }
Was meinst Du, was dieser Code ausgibt?
Viele Grüße
Steve222
-
21.09.10 10:00 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
da meines Wissens nach in einer Datei nur ein Object stehen kann, gibt er nur das erste geschriebene Objekt aus. Also etwas wie "12,2" (je nachdem wie die Italiener die Zahlen darstellen). Danach wirft er in Zeile 17 eine Exception (irgendeine IOException, weiß nicht mehr welche) und er dürfte das Programm abbrechen.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Ich denke die Ausgabe müsste
lauten.12,2
10
-12
Ich teste es mal...
Edit: Also weder ich noch Bratkartoffel waren 100% richtig.
Achtung Spoiler:
Es können natürlich beliebig viele Objekte in einer Datei stehen, aber es wird eine Exception geworfen, weil er den primitiven Datentyp nicht als Object deserialisieren kann. Wenn es am Ende zwei mal "readInt()" heißt, funktioniert es und die Ausgabe ist so, wie ich es vermutet hatte.
Gott sei dank hab ich beide Java Vorlesungen bestanden :-DGeändert von CPoly (21.09.10 um 10:26 Uhr)
-
Hallo BK,
und Danke nochmals.
Nach meinem Test ist es sowie Du es darstellst. Genau ist es eine java.io.OptionalDataException.
Das ist jeoch KEINE RuntimeException so wie es vom Lehrsystem behautet wird:
java.lang.Object
extended by java.lang.Throwable
extended by java.lang.Exception
extended by java.io.IOException
extended by java.io.ObjectStreamException
extended by java.io.OptionalDataException
Was also ist da los.
Wer liegt hier verkehrt?
Viele Grüße
Steve222
Ähnliche Themen
-
Serialisierung
Von athlord im Forum JavaAntworten: 6Letzter Beitrag: 18.12.10, 14:17 -
XML - Serialisierung
Von Apprauuuu im Forum C/C++Antworten: 0Letzter Beitrag: 19.07.08, 17:13 -
Serialisierung von Objektreferenzen
Von Friesi im Forum JavaAntworten: 6Letzter Beitrag: 23.05.07, 14:27 -
StackOverflowError bei Serialisierung
Von Moddas im Forum JavaAntworten: 3Letzter Beitrag: 16.05.07, 08:15 -
Serialisierung PDOStatements
Von mccoke im Forum PHPAntworten: 0Letzter Beitrag: 17.04.07, 11:58





Zitieren

Login





