应用程序如何使用JAR中的文件进行读写?
我需要将数据存储到.jar文件中的文件中,然后再次读取。
我知道我可以使用Class.getResourceAsStream()
方法,但它返回一个InputStream
,我可以读取 。 但我寻找一种写作方式。
我需要将数据存储到.jar文件中的文件中,然后再次读取
不,你不知道。
而是将“默认”文件存储在Jar中。 如果更改,请将更改的文件存储在其他位置。 一个常见的地方是user.home
的子目录。 检查文件时,首先检查文件系统上是否存在已更改的文件,如果不存在,请加载默认文件。
请注意,描述目标通常比较好,而不是策略。 “将更改的文件存储在Jar中”是一种策略,而“运行之间保存偏好”可能是目标。
这不是真的支持。 原则上,您可以在jar文件上进行操作,但不能保证新的内容将被正确加载。 让你的构build工具pipe理这个jar文件 – 并select其他的东西来pipe理你的程序本身的持久性存储。 像一个文件。
这是不可能的,你可以安全地更改加载的jar子。 在使用时更改它并不是一个好主意。
如果你想这样做,使用一个纯文件系统目录,并添加/删除文件。 即使这可能不会如你所期望的那样工作。
您可以使用包java.util.jar
(或者确实只是java.util.zip
)来操作任何jar文件。 由于jar中的文件将被压缩,所以这不是存储数据的最省时的方式。
你可能应该在其他地方使用一个目录(例如System.getProperty("user.home") + "/.myProgram"
)或者参见java.util.prefs
。
Class.getResource()
返回一个URL。 理论上,你可以使用这个URL来创build你的InputStream
和OutputStream
。 但在大多数情况下,生成的JAR是只读文件(或存档)。 所以当你尝试使用它时,你的应用程序可能会跳闸