标题很容易解释。我要保存序列化的“ spiel”
使用filechooser作为“ name.ser”文件。我还想加载文件并将其返回给我的控制器。我不知道如何连接对象输出流和文件选择器。
public class Speicher {
public void spielstandSpeichern(Spiel spiel, String name) { // Save File
try{
FileChooser fs = new FileChooser();
fs.setInitialDirectory(new File("/Saves"));
fs.setTitle("Spiel speichern");
fs.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("Ser", ".ser")
);
//File file =
FileOutputStream fos = new FileOutputStream("Saves/save1.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(spiel);
oos.close();
fos.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
public Spiel spielstandLaden() { // Load File
Spiel spiel = null;
try{
FileInputStream fis = new FileInputStream("Saves/save1.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
spiel = (Spiel) ois.readObject();
ois.close();
fis.close();
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
catch(IOException e) {
e.printStackTrace();
}
return spiel;
}
}
提前致谢 :)
最佳答案
您可以在FileChooser实例上分别使用showSaveDialog
和showOpenDialog
来获取要加载和保存的文件句柄对象。您可以在FileInputStream和FileOutputStream构造函数上使用此文件句柄对象。