首页 >Java >java教程 >如何在 Java 中将文件追加到 ZIP 存档而不重新创建?

如何在 Java 中将文件追加到 ZIP 存档而不重新创建?

DDD
DDD原创
2024-11-25 15:53:10772浏览

How Can I Append Files to a ZIP Archive in Java Without Re-creation?

在 Java 中将文件附加到 ZIP

寻求提取、修改和重新创建 war 文件的传统方法的替代方法,您需要探索将文件直接附加到现有 war 文件的可能性。

Native Java支持

Java 7 引入了 Zip 文件系统,它提供了在 ZIP 存档中添加和修改文件的功能,而无需手动重新打包。使用此 API,您可以直接写入 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");
    }
}

此方法绕过了提取和重新压缩 war 文件的耗时过程,从而产生显着的结果效率提升。

第三方库

同时Java 的本机支持是有效的,还有提供附加功能的第三方库,例如 TrueZip。 TrueZip 提供了一组用于处理 ZIP 文件的全面功能,包括附加文件和提取其内容的功能。其他值得注意的库包括:

  • Zip4j:支持文件追加、加密和压缩。
  • Apache Commons Compress:流行的库用于处理各种压缩格式,包括ZIP。
  • jZip: 一个轻量级库,专注于 ZIP 文件操作的易用性。

以上是如何在 Java 中将文件追加到 ZIP 存档而不重新创建?的详细内容。更多信息请关注PHP中文网其他相关文章!

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