首页  >  文章  >  Java  >  如何在 Java 中高效地将文件附加到 ZIP 存档?

如何在 Java 中高效地将文件附加到 ZIP 存档?

Susan Sarandon
Susan Sarandon原创
2024-11-27 22:42:12191浏览

How Can I Efficiently Append Files to a ZIP Archive in Java?

在 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 存档的能力。

讨论中提到的其他库包括:

  • Apache Commons 压缩
  • Zip4j

这些库为开发人员提供了一系列选项,用于在 Java 中执行高级 ZIP 文件操作应用程序。

以上是如何在 Java 中高效地将文件附加到 ZIP 存档?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn