Sto cercando di serializzare la seguente classe:File.mkdirs() la creazione di una directory invece di un file
public class Library extends ArrayList<Book> implements Serializable{
public Library(){
check();
}
utilizzando il seguente metodo di quella classe:
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();
}
Tuttavia, piuttosto che creando un file chiamato library.ser
, il programma sta creando una directory denominata library.ser
con niente al suo interno. Perchè è questo?
Se il suo utile, il metodo save() viene inizialmente chiamato da questo metodo (della stessa classe):
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);
}
}
E anche 'f.createNewFile()', per creare il file che non esiste. – ddmps
@Pescis Questo è completamente inutile. 'new FileOutputStream()' lo farà comunque. – EJP
Hai ragione, il 'FileNotFoundException' gettato mi ha confuso. – ddmps