首页 > 解决方案 > 如何将序列化对象写入资源文件

问题描述

所以我试图通过保存对象来序列化数据以制作游戏。我已经将数据从流中写入和读取的位置本地化到一个类中,该类具有两个简单的方法,分别从文件中读取对象和从文件中写入对象。我遇到的主要问题是我只是不知道如何读取或写入文件名,所以每当我尝试调用这些方法时,它只会告诉我系统找不到指定的路径。即使当我打印出该方法找到的内容时,也会发生这种情况,它会导致我可以在我的计算机中搜索的相同文件路径。我不明白为什么系统找不到它。

public void SerializeObject(String file, Object obj) {

    URL o = getClass().getResource(file);
    String fileName = o.getPath();

    System.out.println(fileName);

    try {
        FileOutputStream fileOut = new FileOutputStream(fileName);
        ObjectOutputStream out = new ObjectOutputStream(fileOut);
        //fileOut.flush(); Does this clear current data in a file?
        out.writeObject(obj);
    } catch (IOException e) {
        e.printStackTrace();
    }

}

它会打印文件路径,然后告诉我找不到它:

/C:/Users/Aiden/eclipse-workspace/Platformer%20Game/bin/savedata/options_data/resolution.ser
java.io.FileNotFoundException: C:\Users\Aiden\eclipse-workspace\Platformer%20Game\bin\savedata\options_data\resolution.ser (The system cannot find the path specified)

我真的不明白为什么它找不到文件。我还将这段代码拼凑在一起,所以如果我不知道我处理问题的方式是否存在问题。

如何更改代码以便系统识别文件路径?

标签: javafileserializationinputstreamoutputstream

解决方案


推荐阅读