Ich versuche, den Inhalt einer Liste (Objekt) auf der Festplatte mit ObjectOutputStream schreiben.Objekt aus Liste in Datei schreiben, mit ObjectOutputStream
Dies ist der entsprechende Code:
//Input Filetype is .xlsx with an embedded File (also .xlsx), Output Filetype should be .xlsx (Type of embedded File)
//This code should save the embedded File to D:\\...
List<HSSFObjectData> extrList = new ArrayList<HSSFObjectData>();
HSSFWorkbook embeddedWorkbook = new HSSFWorkbook(pPart.getInputStream());
extrList = embeddedWorkbook.getAllEmbeddedObjects();
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\scan_temp\\emb.xlsx"));
oos.writeObject(extrList);
oos.flush();
oos.close();
Dieser Code erstellt eine Datei namens emb.xlsx, aber der Inhalt ist nicht das, was ich erwartet hatte. Wenn ich versuche, mit dem Editor zu öffnen, ist es etwas wie:
¬í sr java.util.ArrayListxÒ™Ça I sizexp w x
Was mache ich hier falsch? Danke für jede Hilfe.
Danke für deine Antwort. Also, wenn meine Daten als Binärdatei gespeichert sind. Ist es überhaupt möglich, die eingebettete Datei (xlsx) in ihrem ursprünglichen Datenformat mit ObjectOutputStream zu speichern? Können Sie mir einen Beispielcode zeigen, wie es geht? Vielen Dank! – Nicola
'ObjectOutputStream' speichert nichts 'in seinem ursprünglichen Format'. Es speichert es gemäß einem Serialisierungsprotokoll, das in der Objektserialisierungsspezifikation definiert ist. Sie müssen die POI-API erneut prüfen, um Tabellenobjekte als '.xlsx' zu speichern. Serialisierung wird es nicht für Sie tun. – EJP
Okay, ich habe gerade gemerkt, dass mein Code in jeder Hinsicht falsch war. :) ObjectOutputStream hilft in meinem Fall nicht. – Nicola