java - 如何将序列化对象写入资源文件
问题描述
所以我试图通过保存对象来序列化数据以制作游戏。我已经将数据从流中写入和读取的位置本地化到一个类中,该类具有两个简单的方法,分别从文件中读取对象和从文件中写入对象。我遇到的主要问题是我只是不知道如何读取或写入文件名,所以每当我尝试调用这些方法时,它只会告诉我系统找不到指定的路径。即使当我打印出该方法找到的内容时,也会发生这种情况,它会导致我可以在我的计算机中搜索的相同文件路径。我不明白为什么系统找不到它。
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)
我真的不明白为什么它找不到文件。我还将这段代码拼凑在一起,所以如果我不知道我处理问题的方式是否存在问题。
如何更改代码以便系统识别文件路径?
解决方案
推荐阅读
- c - Operations with pointers in linked lists
- sql-server - 具有动态 SQL 和 ORDER BY 的存储过程
- objective-c - Cannot invoke 'schema' with an argument list of type '(String)'
- docker - 套接字异常:对等方重置连接
- javascript - How to negate and atribute a function to a variable in javascript?
- saxon - java -jar saxon9he.jar person.xml person_users.xslt -o:persons_transformed.txt
- python - 如何在python中清除或覆盖错误的用户输入
- javascript - Find the key in an object which contains a particular value in an array
- sql - oracle 10g中listagg的替代品
- php - sentry-sentry-symfony won't install on Symfony 2.8 due to symfony/http-kernel dependency