2009年07月04日

【1日1Java】ZipOutputStreamで圧縮

// JRE 1.6.0_07
// java.util.zip.ZipOutputStream
// ZipOutputStreamクラスを使用してZipファイルの圧縮
// tag zip 


// ※ルートディレクトリに、「test1.txt」と「test2.txt」というファイルを置いてください
//   その2ファイルを圧縮します

ZipOutputStream os = new ZipOutputStream( new FileOutputStream( "test.zip" ) );

// 例として、test2.txtの方はディレクトリを切ってその配下に入れることにします
String[] entryNames = {"test1.txt", "test/test2.txt"};
for(String entryName : entryNames) {
    os.putNextEntry( new ZipEntry( entryName ) );
    InputStream is = new FileInputStream( entryName );
    int i;
    while( ( i = is.read() ) != -1 ) {
        os.write( i );
    }
    is.close();
    os.closeEntry();
}
os.close();