【发布时间】:2018-05-15 21:10:57
【问题描述】:
我有一个包含 MO.data 的文件夹,我想将对象保存到其中。
try{
FileOutputStream t = new FileOutputStream(String.valueOf(GameReader.class.getResourceAsStream("MO.data")));
ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(t));
out.writeObject(map);
out.close();
System.out.println("File saved and closed!");
return true;
}catch(IOException ioe){
System.err.print(ioe);
return false;
}
我有:src/files/GameReader.class and src/files/MO.data
我的班级位于 src/logic/saver.class
但是,它一直将其保存到一个文件中:java.io.BufferedInputStream@11b1857c in src/java.io.BufferedInputStream@11b1857c
我做错了什么?
【问题讨论】:
-
FileOutputStream 采用
String文件名/位置。您正在将数据写入 getResourceAs 的引用名称。 -
哦,我明白了。在过去的一个小时里,我一直在为此苦苦挣扎,至少对我来说,在这里没有找到任何有用的东西。我也不能给出完整的路径,因为我稍后也要构建一个 Jar。
FileOutputStream t = new FileOutputStream("files/MO.data");也没有工作。这是我在intellij中右键单击文件并按“获取相对路径”时得到的路径 -
您可以使用 Java 内置的文件/文件/路径库。如果您不提供完整路径,文件将创建一个相对于工作目录的文件,而其他两个可以促进这一点。
-
如果我错了请纠正我,但在构建 Jar 文件时不会使用 File/Files/Path 给出错误?
-
您不应该写入 jar 中的文件。可能会改变内容的文件应该存在于 jar 之外。
标签: java fileoutputstream