Java/サンプル/JavaでZipファイル圧縮(commons-compress)テキスト一個だけ



  • ApacheのCommons Compressを使用した、JavaによるZip圧縮の超簡単なサンプルです。
  • 実行すると「ほげほげ」とだけ書き込んだ「ほげほげ.txt」だけを含むzipファイルを作成します。
  • Java標準のZip圧縮では日本語のファイル名をUTF-8で書き込んでしまうため、Commons Compressを使いました。

サンプルソース

// Zipファイル圧縮サンプル
// 簡単な圧縮。
// 「ほげほげ」と書かれた「ほげほげ.txt」を含むzipファイルを作るサンプル。
import java.io.*;
import org.apache.commons.compress.archivers.zip.*;
 
public class ZipCompSample {
 
  public static void main(String[] args) throws Exception {
    // 1.sampleComp.zipに書き込むZipArchiveOutputStreamを作成します
    ZipArchiveOutputStream os = new ZipArchiveOutputStream(new File("sampleComp.zip"));
    // 2.中の圧縮ファイルに適用するエンコードを指定します。システム標準にしてみたのでWindowsならMS932になります。
    os.setEncoding(System.getProperty("file.encoding"));
 
    // 3.ZipArchiveEntry(Zipに入れるファイルのような物)を作成
    ZipArchiveEntry zae = new ZipArchiveEntry("ほげほげ.txt");
    // 4.ZipArchiveOutputStreamにエントリを入れます。
    os.putArchiveEntry(zae);
    // 5.エントリの中身を書き込みます。
    // 中身が多い場合は、500バイトずつとか何回かに分けて書き込むと良いです。
    os.write("ほげほげ".getBytes());
    // 6.エントリをクローズします
    os.closeArchiveEntry();
    // 複数のファイルをzipファイルに入れる場合は、3~6の工程をファイルの数だけ繰り返します。
 
    // 7.最後にアウトプットストリームをクローズします。
    os.close();
 
    // これで、「ほげほげ.txt」の入った「sampleComp.zip」が出来上がったはずです。
  }
}
 

サンプルダウンロード


コメント

タグ:

Java Zip Apache 圧縮
最終更新:2013年02月03日 01:18