JavaでZip圧縮

JavaでZip圧縮

サーバ間のファイル連携で、XMLファイルを送信しているが、サイズが結構大きくなってしまう。
shellでZip圧縮してからFTP転送していたが、Javaから直接Zipファイルで出力する事にした。

JAXB.marshalの引数にOutputStreamを指定できるので、ZipOutputStreamを渡す。

1
2
3
4
5
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File("out.zip")))) {
    ZipEntry ze = new ZipEntry("out.xml");
    zos.putNextEntry(ze);
    JAXB.marshal(dat, zos)
}

これで、out.zipの中に、out.xmlというファイル名で出力できる。
ディスクの遅いマシンで実行すると、Zipに出力した方がファイルサイズが小さくなり、出力処理が早くなった。
しかし、マシンによってはZip圧縮にコストがかかってしまい、処理が遅くなることもあった。

同じタグの記事
同じカテゴリの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA