我需要将数据存储到.jar文件内的文件中,然后再读取它。
我知道可以使用 Class.getResourceAsStream()
方法,但它返回一个 InputStream
对象,我只能从中读取数据。但我正在寻找一种写入数据的方法。
我需要将数据存储到.jar文件内的文件中,然后再读取它。
我知道可以使用 Class.getResourceAsStream()
方法,但它返回一个 InputStream
对象,我只能从中读取数据。但我正在寻找一种写入数据的方法。
user.home
的子目录。 在检查文件时,首先检查文件系统上是否存在更改后的文件,如果不存在,则加载默认文件。
这并不是被完全支持的。原则上,你可以对jar文件进行操作,但是不能保证新的内容能够正确加载。让你的构建工具管理jar文件,并选择其他由程序本身管理的持久化存储方式,比如文件。
很难安全地更改已加载的jar文件。在使用时更改它并不是一个好主意。
如果您想这样做,请使用普通的文件系统目录,并添加/删除其中的文件。即使这样做,也可能无法按照您的预期工作。
您可以使用包java.util.jar
(或者只是java.util.zip
)来操作任何jar文件。由于jar内部的文件将被压缩,因此这不是您存储数据的最有效的方式。
您应该在其他地方使用目录(例如System.getProperty("user.home") + "/.myProgram"
),或查看java.util.prefs
。
Class.getResource()
返回一个 URL。理论上,您可以使用此 URL 创建您的 InputStream
和 OutputStream
。但在大多数情况下,生成的 JAR 是只读文件(或存档)。因此,在尝试使用它时,您的应用程序可能会出现问题。