【问题标题】:Write to a .txt file in a package写入包中的 .txt 文件
【发布时间】:2014-01-16 13:28:32
【问题描述】:

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

【问题讨论】:

  • 我不确定你在问什么。您是否正在尝试写入资源?
  • 我不确定是否有通用的方法来处理 Java 包层次结构中的文件。如果文件在 JAR 文件中怎么办?
  • 该文件将位于 .jar 文件中。当用户通过关卡时,我想给它写信以更新我的游戏中的分数。
  • 你无法写入 jars 内的文件 stackoverflow.com/questions/14403745/…
  • @user3080274:这也不是一个好主意。代码和变量数据不应该像这样强加在一起......

标签: java


【解决方案1】:

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

请参考此链接。

Write To File Method In JAR

【讨论】:

    【解决方案2】:

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

    public URL getPackageLocation() {
        return getClass().getResource(".");
    }
    

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

    【讨论】:

    • 您可以通过这种方式在 .jar 文件中获取文件的位置(我已经多次使用它来调用图像等等)。但是,我认为您不能在 jar 中编辑 .txt 文件。
    【解决方案3】:

    从 cmets 中您已经知道不能写入文件,该文件位于 JAR 文件中。充其量你能做的是创建你的文件,相对于 JAR 所在的路径,如下所示:

     mylocation
              |-- my-jar.jar
              |-- com
                    |--game
                          |--myfile.txt
    

    【讨论】:

      【解决方案4】:

      我想写信来更新我游戏中的分数,因为 用户通过关卡。

      虽然write to the JAR file 可能是可能的,但我不建议在此用例中使用它。写在某处:

      Path userdir = Paths.get(System.getProperty("user.home"), ".myApp", "<my app version>");
      

      【讨论】:

        【解决方案5】:

        您不能写入 Jar 文件。不建议写入 Jar 文件。可以在jar文件外写。

        更多详情请参考thisthis堆栈溢出问题。

        【讨论】:

          猜你喜欢
          • 2012-07-19
          • 2013-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-08
          • 2013-03-03
          • 2012-03-04
          相关资源
          最近更新 更多