JavaでZip圧縮

JavaでZip圧縮

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

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


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