在 Java 中将文件附加到 ZIP 文件:高级技术
寻求一种在 Java 中将文件附加到 ZIP 文件的有效方法,开发人员向社区寻求指导。该任务涉及通过提取内容、添加新文件以及重新创建 WAR 文件来修改 WAR 文件。
询问方最初考虑复制 WAR 文件并直接附加文件以提高效率。然而,由于 Java 文档或在线资源中缺乏明显的解决方案,开发人员寻求替代方法。
解决方案:Java 7 的 Zip 文件系统
通过根据社区的智慧,Java 7 引入了一项名为 Zip 文件系统的改变游戏规则的功能。这一突破允许在 ZIP(JAR、WAR)文件中无缝添加和修改文件,而无需手动重新打包。
通过利用 Zip 文件系统,开发人员可以直接写入 ZIP 存档中的文件。下面是一个说明性代码片段:
Map<String, String> env = new HashMap<>(); env.put("create", "true"); Path path = Paths.get("test.zip"); URI uri = URI.create("jar:" + path.toUri()); try (FileSystem fs = FileSystems.newFileSystem(uri, env)) { Path nf = fs.getPath("new.txt"); try (Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE)) { writer.write("hello"); } }
在此示例中,创建了一个“new.txt”文件,并在“test.zip”存档中填充了消息“hello”。这种优雅而高效的方法为将文件附加到 ZIP 文件提供了强大的解决方案。
TrueZip:替代库
为了响应原始查询者的更新,社区建议研究 TrueZip 作为潜在的解决方案。 TrueZip 是一个强大的 Java 库,专门为操作 ZIP 文件而设计。它提供了一套全面的功能,包括将文件附加到现有 ZIP 存档的能力。
讨论中提到的其他库包括:
这些库为开发人员提供了一系列选项,用于在 Java 中执行高级 ZIP 文件操作应用程序。
以上是如何在 Java 中高效地将文件附加到 ZIP 存档?的详细内容。更多信息请关注PHP中文网其他相关文章!