您好我使用Eclipse编写了一个Java游戏,我通过读取/写入配置文件的类来管理首选项。 当我从eclipse运行它时一切正常但是当我从jar中运行它时我创建的读取和写入都不起作用。 我设法使用getResourceAsStream解决了阅读问题,但我不知道如何解决写作问题。 这是我用来读取文件的代码:
try {
InputStream is = getClass().getResourceAsStream("/res/configuration.txt");
Properties properties = new Properties();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
properties.load(br);
br.close();
}
和properties.getProperty获取值。 适用于Eclipse和jar。
这是我尝试编写文件的代码:
try {
properties.setProperty("playerColor", value);
FileOutputStream fos = new FileOutputStream("/res/configuration.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
properties.store(osw, null);
osw.close();
}
在任何情况下都不起作用,它说无法找到该文件。
我该如何解决?另外,我必须在代码中使用类Properties。
由于
更多信息
我使用两个csv文件来保存记录和游戏以及用于配置的txt文件,这些文件位于“res”包中:
Project Folder
--- classpath
--- bin
--- src
--- project
--- res
--- records.csv
--- save.csv
--- configuration.txt
答案 0 :(得分:1)
首先,jar是一个存档,并不意味着要更改。 所以正确的解决方案是写入外部源。 您可以创建一个文件夹,并将游戏中的所有数据放入该文件夹(统计,保存文件等)