Hallo zusammen,
ich mache gerade meine ersten Schritte mit ObjectOIStreams.
Ich habe m ir eine serializable class gebaut, von denen ich mir Elemente anlege und in einem Vector speichere. Diesen Vektor möchte ich nun in eine Datei speichern (der Inhalt muss nicht von Menshen aus der Datei gelesen werden können; das war eine Frage, die in mehrern ähnlichen Threads aufkam; das ganze muss lediglich wieder einlesbar sein durch das Programm).
Genau dort - beim Einlesen - gibt es aber Probleme, da ich dort caste, was dann beim Ausführen zu einer Execption führt:
Hier meine Klasse, deren Objekte ich in den Vektor stopfe:
Und hier der restliche Code:
Grüße - spacegaier
ich mache gerade meine ersten Schritte mit ObjectOIStreams.
Ich habe m ir eine serializable class gebaut, von denen ich mir Elemente anlege und in einem Vector speichere. Diesen Vektor möchte ich nun in eine Datei speichern (der Inhalt muss nicht von Menshen aus der Datei gelesen werden können; das war eine Frage, die in mehrern ähnlichen Threads aufkam; das ganze muss lediglich wieder einlesbar sein durch das Programm).
Genau dort - beim Einlesen - gibt es aber Probleme, da ich dort caste, was dann beim Ausführen zu einer Execption führt:
- Thread [main] (Suspended (exception ClassCastException))
Main.main(String[]) line: 32
Hier meine Klasse, deren Objekte ich in den Vektor stopfe:
Code:
import java.io.Serializable;
public class SheetMusicEntry implements Serializable
{
private static final long serialVersionUID = 1L;
private String title;
private String composer;
private String folder;
private int sheetCount;
private boolean original;
public SheetMusicEntry(String title, String composer, String folder, int sheetCount, boolean original)
{
this.title = title;
this.composer = composer;
this.folder = folder;
this.sheetCount = sheetCount;
this.original = original;
}
public void setTitle(String title){this.title = title;}
public void setComposer(String composer){this.composer = composer;}
public void setFolder(String folder){this.folder = folder;}
public void setSheetCount(int sheetCount){this.sheetCount = sheetCount;}
public void setIsOriginal(boolean original){this.original = original;}
public String getTitle() {return title;}
public String getComposer() {return composer;}
public String getFolder() {return folder;}
public int getSheetCount() {return sheetCount;}
public boolean isOriginal() {return original;}
}
Und hier der restliche Code:
Code:
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.Vector;
public class Main implements Serializable
{
private static final long serialVersionUID = 1L;
private static Vector<SheetMusicEntry> entries = new Vector<SheetMusicEntry>();
private static Vector<SheetMusicEntry> entries2 = new Vector<SheetMusicEntry>();
public static void main(String[] args) throws IOException, ClassNotFoundException
{
FileOutputStream fos = new FileOutputStream("test.smdb");
ObjectOutputStream oos = new ObjectOutputStream(fos);
entries.add(new SheetMusicEntry("esrt","sarase","earta",2,true));
entries.add(new SheetMusicEntry("easdt","sfsdfase","dfgrta",3,false));
System.out.println(entries.size());
oos.writeObject(entries);
oos.close();
FileInputStream fis = new FileInputStream("test.smdb");
ObjectInputStream ois = new ObjectInputStream(fis);
entries2.addElement((SheetMusicEntry) ois.readObject());
System.out.println(entries.size());
ois.close();
}
}
Grüße - spacegaier