我正在尝试保存文件目录,这样当我的应用程序再次打开时,会记住这些目录。我想将目录保存到我的源代码包中名为'directories.txt'的文件中。
我确实学会了如何使用以下方式阅读:
getClass().getResourcesAsStream("/getresources/directories.txt")
所以我的问题是如何写入该文件?这可能。
谢谢,
NT
答案 0 :(得分:1)
这是不可能的。您获得的文件是应用程序的类路径中的资源,如.class文件。就像一个类文件一样,它无法重写到原来的位置(可以是jar,zip或者二进制.class文件夹)。它是只读的,不能用于持久性。
要保留您将要使用外部资源的任何数据。您可以在文件系统的任何路径中写入实际文件。该文件将位于类路径文件的外部。
答案 1 :(得分:1)
将用户数据保存在应用程序的安装目录中从根本上说是错误的!即使在同一时间,计算机上也可以有多个用户。他们可能不会(实际上不应该)对应用程序文件具有写入权限。大约10年前,甚至在Windows上(以及大约50年前的其他地方),“有一个用户,他拥有整个机器”的心理模型出现了错误。
使用Java Preferences API代替发明自己的机制。
答案 2 :(得分:0)
在某些情况下有可能:见this SO answer。但是,它很复杂,我强烈建议你不要尝试。
存在各种OS特定和Java标准/优选的存储用户偏好信息的方式。使用它们,不要试图破解JAR文件。