Ich versuche zu schaffen bin die folgende Klasse serialisiert werden:File.mkdirs() ein Verzeichnis anstelle einer Datei
public class Library extends ArrayList<Book> implements Serializable{
public Library(){
check();
}
die folgende Methode dieser Klasse mit:
void save() throws IOException {
String path = System.getProperty("user.home");
File f = new File(path + "\\Documents\\CardCat\\library.ser");
ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream (f));
oos.writeObject(this);
oos.close();
}
Doch anstatt Erstellen einer Datei namens library.ser
, erstellt das Programm ein Verzeichnis mit dem Namen library.ser
mit nichts darin. Warum ist das?
Wenn sein hilfreich, die save() Methode wird zunächst von dieser Methode (der gleichen Klasse) genannt:
void checkFile() {
String path = System.getProperty("user.home");
File f = new File(path + "\\Documents\\CardCat\\library.ser");
try {
if (f.exists()){
load(f);
}
else if (!f.exists()){
f.mkdirs();
save();
}
} catch (IOException | ClassNotFoundException ex) {
Logger.getLogger(Library.class.getName()).log(Level.SEVERE, null, ex);
}
}
Und auch 'f.createNewFile()', um die Datei zu erstellen, die nicht existiert. – ddmps
@Pescis Das ist völlig unnötig. 'new FileOutputStream()' wird das trotzdem tun. – EJP
Du hast recht, die 'FileNotFoundException' hat mich verwirrt. – ddmps