标题很容易解释。我要保存序列化的“ 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实例上分别使用showSaveDialogshowOpenDialog来获取要加载和保存的文件句柄对象。您可以在FileInputStream和FileOutputStream构造函数上使用此文件句柄对象。

09-11 15:45