写入包中的.txt文件

时间:2014-01-15 17:37:08

标签: java

我想写一个包内的.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中编译时将不再存在。

5 个答案:

答案 0 :(得分:1)

您可以使用该包中的类来为您提供文件夹的位置。 尝试像

这样的东西
public URL getPackageLocation() {
    return getClass().getResource(".");
}

这应该为您提供从中调用此方法的文件夹的位置。

答案 1 :(得分:1)

无法在jar中写入或更新文件。因为jar本身就是一个文件。

请参阅此链接。

Write To File Method In JAR

答案 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)

您无法写入Jar文件。不建议写入Jar文件。你可以在jar文件外面写。

有关详细信息,请参阅thisthis堆栈溢出问题。