Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Encoder Decoder XML in Java funktioniert nicht (http://www.informatikerboard.de/board/thread.php?threadid=1995)
Geschrieben von Haevelin am 11.12.2014 um 09:49:
Encoder Decoder XML in Java funktioniert nicht
Hallo,
für Daten, die eingegeben worden sind, soll ich ein XML File erstellen, um beim Neustart dieses File zu lesen, und die Ausgangsdaten zu aktualisieren. Für das Encoden habe ich folgenden Code, der über einer ArrayList operiert.
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
|
private void ende()
{ XMLEncoder encoder=null;
try { //
OutputStream output = new FileOutputStream(FILENAME); //
XMLEncoder encoder = new XMLEncoder(output); encoder = new XMLEncoder(new BufferedOutputStream( new FileOutputStream(FILENAME))); encoder.writeObject(speicher);
encoder.close(); }
catch (FileNotFoundException e) {
// TODO Auto-generated catch block System.out.println("Datei nicht gefunden"); e.printStackTrace(); }
System.exit(0);
} |
|
speicher verweist auf eine ArrayList mit Einträgen aus der Klasse Speicher:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
import java.io.Serializable;
import java.util.Vector;
public class Speicher implements Serializable
{ public String entitaet;
public String uebergabe;
public Speicher(String entitaet, String uebergabe)
{ this.entitaet=entitaet;
this.uebergabe=uebergabe; }
public String getEntitaet()
{ return this.entitaet; }
public String getUebergabe()
{ return this.uebergabe; }
} |
|
Dieses Encoding funktioniert aber nicht.
Folgende Fehlermeldung:
java.lang.InstantiationException: Speicher
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement ArrayList.add(Speicher);
Continuing ...
java.lang.InstantiationException: Speicher
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement ArrayList.add(Speicher);
Continuing ...
Was habe ich falsch gemacht?
Geschrieben von eulerscheZahl am 11.12.2014 um 09:59:
RE: Encoder Decoder XML in Java funktioniert nicht
Hallo,
zunächst einmal solltest du den Code auf mehrere Zeilen aufteilen, das hat den Vorteil, dass mit // nur die aktuelle Zeile auskommentiert wird und nicht die ganze Funktion.
Funktioniert nicht ist doch recht allgemein.
Kannst du die Datei nicht wieder einlesen, oder scheitert es schon beim Abspeichern? Wie sieht die Fehlermeldung aus?
Mal ein Schuss ins Blaue:
Bei encoder.writeObject() wird vorausgesetzt, dass das zu schreibende Object Serializable implementiert. Hast du das vergessen?
(Der Teil hat sich mit deinem Edit erledigt)
Wenn du ein Objekt serialisieren willst, muss es nicht nur Serializable implementieren, sondern auch einen default-Konstruktor besitzen. Nach Einfügen der Zeile public Speicher() {} funktioniert alles.
Geschrieben von Haevelin am 11.12.2014 um 11:00:
RE: Encoder Decoder XML in Java funktioniert nicht
Funktioniert!!!!
Vielen Dank!
Forensoftware: Burning Board, entwickelt von WoltLab GmbH