Java Zipファイルを解凍するサンプル

JavaのZipファイルを解凍(展開)するサンプルです。

確認環境
・Java 8

目次

Zipを解凍する Zipファイルを解凍(展開)する
  コンストラクタとメソッド

zipファイルを解凍(展開)する

zipファイルを解凍して中にある2つのファイルを取得するサンプルです。

package test1;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;

public class Test1 {
    public static void main(String[] args) {
    	// 文字コード
    	Charset charset = Charset.forName("MS932");
    	// 入力ファイル
        String inputfile1 = "D:\\\\Test1\\zipテスト.zip";
    	// 出力先
        String outputfile1 = "D:\\\\Test1\\";
        try(
                FileInputStream fis = new FileInputStream(inputfile1);
                BufferedInputStream bis = new BufferedInputStream(fis);
        		ZipInputStream zis = new ZipInputStream(bis,charset);
        ) {
        	ZipEntry zipentry;
    		// zipの中のファイルがあるだけ繰り返す
    		// 展開後のファイルサイズ、ファイル名に注意
        	while((zipentry = zis.getNextEntry()) !=null) {
        		try(FileOutputStream fos = new FileOutputStream(outputfile1 + zipentry.getName());
        				BufferedOutputStream bos = new BufferedOutputStream(fos);
        				){
        			byte[] data = new byte[1024]; // 1KB 調整可
        			int count = 0;
        			while((count = zis.read(data)) != -1){
        				bos.write(data,0,count);
        			}
        		}
        	}
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
}

22行目は、ZipInputStreamクラスです。zipの解凍を行う時に使用します。
27行目からは、zipファイルを解凍してファイルに書き込んでいます。
解凍後のファイルサイズとファイル名に注意します。必要であればチェックを行います。
31行目のサイズは1KBとしています。調整可能です。

以下は、zipテスト.zipファイルから2つのファイルを取得した図です。

コンストラクタとメソッド

以下は、上記コードで使用している主なコンストラクタとメソッドです。

ZipInputStreamクラス

public ZipInputStream(InputStream in,Charset charset)
public ZipEntry getNextEntry() throws IOException

ZipEntryクラス

public getName(String name)

関連の記事

Java Zipファイルに圧縮するサンプル

△上に戻る