zip4j を使用してZIPファイルの生成・解凍する方法について記載します。
目次
ZIPファイルを生成する方法
ファイルを指定
addFileメソッドを使用すると、ファイルを指定してZIPファイルを生成することができます。
入力ファイルを文字列で指定
1 2 3 4 |
String inputPath = "/input/file.txt"; String outputPath = "/output/output.zip"; new ZipFile(outputPath).addFile(inputPath); |
入力ファイルをFileオブジェクトとして指定
1 2 3 4 |
File inputFileObj = new File("/input/file.txt"); String outputPath = "/output/output.zip"; new ZipFile(outputPath).addFile(inputFileObj); |
このように、簡単にZIPファイルを生成することができます。
ただ実際には、入力ファイルの存在チェックや、例外処理を入れるので以下のようなコードになると思います。
1 2 3 4 5 6 7 8 9 10 |
try { File inputFileObj = new File("/input/file.txt"); String outputPath = "/output/output.zip"; if( inputFileObj.exists() ) { new ZipFile(outputPath).addFile(inputFileObj); } } catch (ZipException ze) { // 例外処理 } |
複数ファイルを一括で指定する方法
addFilesメソッドを使用することで、複数ファイルを一括で指定することができます。
1 2 3 4 5 6 7 8 9 10 |
// 入力ファイル File fileA = new File("/input/file_b.txt"); File fileB = new File("/input/file_b.txt"); // List<File> オブジェクトの生成 List<File> fileList = Arrays.asList(fileA, fileB); String outputPath = "/output/output.zip"; new ZipFile(outputPath).addFiles(fileList); |
フォルダを指定する方法
addFolderメソッドを使用すると、ルートフォルダを指定して圧縮することができます。
1 2 3 4 |
File inputFileObj = new File("/root/dir"); String outputPath = "/output/output.zip"; new ZipFile(outputPath).addFolder(inputFileObj); |
ZIPを解凍する方法
ZIPファイル内の全てのファイルを取り出す方法
extractAll メソッドを使用すると全てのファイルを取り出すことができます。
1 2 3 4 |
String zipFilePath = "/root/input/sample.zip"; String outputPath = "/root/output"; new ZipFile(zipFilePath).extractAll(outputPath); |
ZIPファイル内の指定したファイルのみ取り出す方法
extractFile メソッドを使用すると、指定したファイルのみ取り出すことができます。
1 2 3 4 5 |
String zipFilePath = "/root/input/sample.zip"; String targetFileName = "text.txt"; String outputPath = "/root/output"; new ZipFile(zipFilePath).extractFile(targetFileName, outputPath); |
まとめ
zip4j を使用すると、ZIPファイルの圧縮・解凍を簡単に行うことができます。
上記のサンプルコードでは
・ファイル・フォルダの存在チェック
・例外処理(ZipException)
を省略している箇所もあるので、実際に使用される際は追加されることはオススメします。