从罐子里写下一个属性

时间:2015-08-02 09:30:36

标签: java eclipse

您好我使用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

1 个答案:

答案 0 :(得分:1)

首先,jar是一个存档,并不意味着要更改。 所以正确的解决方案是写入外部源。 您可以创建一个文件夹,并将游戏中的所有数据放入该文件夹(统计,保存文件等)