在资源文件夹中使用Java编写.txt文件

6

我想在资源文件夹中写入一个 .txt 文件,但是它没有写入任何内容。我可以通过以下方式读取同一 .txt 文件:

Scanner scanner = null;
InputStream IS = MyClass.class.getResourceAsStream("/File/My FileH");
scanner = new Scanner(IS);

但是当涉及到写作时,我尝试过以下做法:
PrintWriter writer =  new PrintWriter(
    new File(this.getClass().getResource("/File/My FileH").getFile()));
writer.println("hello");
writer.close();

有没有关于如何在那个文件夹里写作的建议?

尝试使用PrintWriter writer = new PrintWriter(new File(this.getClass().getResource("/File/My FileH").getPath()));获取写入器。 - Héctor
2
资源不是文件,它们的位置是JAR文件中的文件夹,而不是文件系统中的目录。您需要重新考虑您的需求。 - user207421
@bigdestroyer,即使进行了那个更改,它仍然无法写入。 - Luis Pascual
@EJP,您认为我应该如何处理这个文件写入的问题呢? - Luis Pascual
那个文件有什么作用? - Rhayene
@Rhayene 这是用于存储ECC私钥的。 - Luis Pascual
1个回答

21

如果你把资源打包成了 JAR 文件,那么你无法向资源中写入任何内容。JAR 文件是只读的,无法进行更新。不过你可以提取 JAR 文件并编辑其中的内容。

作为替代方案,你可以尝试使用首选项(Preferences)


1
好的,谢谢您的回复。我会尝试找另一种方法来解决这个问题。 - Luis Pascual
我们可以在当前目录中创建一个文件夹,以便进行写入和读取访问。 - Ram
1
@Ram 当然,我们可以在系统中任何有写入权限的位置进行编写。但不能在jar资源文件夹内部进行编写。 - Viswanath Lekshmanan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接