我想写一个包内的.txt文件。我可以从.txt文件存储的确切位置读取,但不能从包内读取。我假设它正在使用类加载器,但我似乎无法让它工作。 这是我到目前为止所拥有的。
public void writeFile(String fileLocation) {
Writer output = null;
File file = new File(fileLocation);
try {
output = new BufferedWriter(new FileWriter(file));
output.append("WRITING TEST");
output.close();
} catch (IOException ex) {
System.out.println("Couldn't write to file.");
}
}
然后我在另一个类中使用它来编写。
WriteFile writeFile = new WriteFile();
writeFile.writeFile("src/com/game/scores.txt");
我理解如果使用类加载器,则删除“src /”,因为当程序在.jar中编译时将不再存在。
答案 0 :(得分:1)
您可以使用该包中的类来为您提供文件夹的位置。 尝试像
这样的东西public URL getPackageLocation() {
return getClass().getResource(".");
}
这应该为您提供从中调用此方法的文件夹的位置。
答案 1 :(得分:1)
答案 2 :(得分:0)
从您已经知道的注释中,您无法写入驻留在JAR文件中的文件。最好你可以做的是创建你的文件,相对于JAR所在的路径,如下所示:
mylocation
|-- my-jar.jar
|-- com
|--game
|--myfile.txt
答案 3 :(得分:0)
我想写信来更新我游戏中的分数 用户通过级别。
尽管可能write to the JAR file,但我不建议将此用例用于此用例。只需将它写在:
Path userdir = Paths.get(System.getProperty("user.home"), ".myApp", "<my app version>");
答案 4 :(得分:0)