访问和修改 JAR 文件中的文件
在 JAR 中存储和检索文件中的数据是许多应用程序的常见要求。虽然使用 Class.getResourceAsStream() 从 JAR 读取文件很简单,但写入 JAR 中的文件却是一个挑战。
写入 JAR 文件的限制
根本限制在于 JAR 文件的性质。 JAR 文件是只读存档,针对打包和分发预编译代码进行了优化。编译后对 JAR 文件所做的任何修改都不会保留。因此,无法直接写入 JAR 中存储的文件。
替代方法
建议的方法是在 JAR 中存储默认数据文件并处理分别改变。不要修改 JAR 文件,而是在本地文件系统上创建第二个位置来存储修改后的或用户特定的数据。
访问文件时,应用程序应首先检查辅助位置中是否存在修改后的版本。如果存在,则使用该文件。否则,将加载 JAR 中的默认文件。这种设计允许保留自定义和首选项,同时保持 JAR 包的完整性。
示例
考虑一个将用户首选项存储在名为“的文件中的应用程序”首选项.xml”。默认首选项文件可以嵌入到 JAR 中。当应用程序启动时,它会检查用户主目录的特定子目录中是否存在“preferences.xml”的修改版本。如果是,则加载修改后的文件。否则,将使用 JAR 中的默认首选项文件。
此方法可确保用户特定数据的持久存储,同时保持 JAR 文件不变。它是尝试直接写入 JAR 中的文件的首选替代方案。
以上是如何高效处理 JAR 存档中的文件修改?的详细内容。更多信息请关注PHP中文网其他相关文章!