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圧縮にコストがかかってしまい、処理が遅くなることもあった。
同じタグの記事
- EclipseLinkでJPA
- eclipseの良く使うショートカットキー
- eclipseデフォルトの文字コード
- itext5でPDFを暗号化する
- Java DateFormat
- Java8で指定回数繰り返し
- Java9でJAXB
- javaでイメージフォーマット変換
- javaでダミー画像作成
- javaでファイルの更新日時を変更する
同じカテゴリの記事
コメントを残す