Java での Zip ファイルへの追加: TrueZip および Java 7
WAR ファイルの抽出、変更、および再パッケージ化のコンテキストでは、これが一般的です。ファイルを既存の WAR アーカイブに直接追加することで効率を高めることを検討してください。 Java ドキュメントにはこのタスクの明示的な方法が欠けていますが、利用可能な解決策はあります。
TrueZip ライブラリ
1 つのオプションは、更新されたドキュメントで提案されているように、TrueZip ライブラリを利用することです。問い合わせ。 TrueZip は、Zip アーカイブを操作および追加するための特定の機能を提供します。 TrueZip を使用すると、対象の Zip ファイルからファイルを選択的に追加、更新、削除できます。
Java 7 の Zip ファイル システム
さらに、Java 7 では Zip ファイルが導入されました。再パッケージ化せずに Zip アーカイブを変更できるシステム。 Zip ファイル システムを使用すると、標準の Java I/O 操作を使用して、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"); } }
Zip ファイル システムを使用すると、通常のファイル システムであるかのように Zip アーカイブを操作でき、ファイルの追加や変更を効率的に行うことができます。
以上がTrueZip または Java 7 の Zip ファイル システムを使用して、Java で既存の Zip アーカイブにファイルを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。