javaでzip作る時の圧縮レベルの話

公開日: : 最終更新日:2015/11/25 IT全般, プログラミング

いわゆる無圧縮zipファイルをjavaで作ることがあったので、覚え書きです。

ついでに圧縮レベルについての簡単な説明も。

ていうか圧縮レベルってなんだってところから入りました。

圧縮レベルとは

その名の通り、どれだけの圧縮率でzipファイルを作成するかの指標らしいです。

0~9まであり、0は無圧縮(=サイズが変わらず、アーカイブ化だけされる)で9が最高レベルです。

JavaでZipを作る場合、ZipOutputStreamを使うことが多いと思いますが、その中で設定出来ます。


ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(targetZip)));

zip.setLevel(compressionLevel); // 圧縮レベルの設定

compressionLevelですが、デフォルト値は -1 となっており、

実際には0~9の数値が指定できます。

デフォルト値を設定していた場合、レベル6として扱われるようです。

冒頭でも触れましたが、無圧縮Zipを作りたい場合は、圧縮レベルを0とすればいいです。


ZipOutputStream zip = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(targetZip)));

zip.setLevel(0); // 無圧縮zipが作成される。

ちなみに、一番圧縮率がいいcompressionLevel=9ですが、

当然処理速度は遅くなるらしいので注意が必要ですね。どれだけ速度変わるのか知らないですが。

大量に扱う かつ そこまで容量の削減を必要としない場合は

デフォルトのままが安心院さんだと思います。

関連記事

no image

svnを使っている作業場でgitを普及させるためにやったこと

今回は、ある作業場でgitを普及させたい!という思いから、私が個人的に調査したこと、伝えたことを紹介

記事を読む

no image

シェルスクリプトでtsvファイルとcsvファイルを処理する方法

シェルスクリプトでtsvファイルを要素ごとに配列に格納し、処理する方法です。 普通はcsvファ

記事を読む

スクリーンショット 2014-08-05 0.53.46

初心者のiOSアプリ(収支表)作成記。その1

iOSアプリ作成経験0の私が、収支表アプリを作ってみます。 ブログ書きながら勉強してるのでほと

記事を読む

no image

chromeで「このウェブページにアクセスできません」が出たときの対処法

自宅以外の環境でchrome使おうとして、検索した瞬間に「このウェブページにアクセスできません」と出

記事を読む

no image

ExcelでActiveXコントロールを挿入すると「オブジェクトを挿入できません」とエラーが出る。

とあるExcelファイルであるマクロを実行しようとしたのですが、 ActiveXオブジェクトの

記事を読む

no image

CSSで表の罫線出そうとしたら点線と実線が混ざってどん詰まりした話

デザイナーさんからもらったCSSをHTMLの表に適用したら、 IEで見た時だけなぜか枠線の一番

記事を読む

no image

bashにおける角括弧”[]“の扱いで困ったこと

あるShellScriptでパスワードを乱数生成するときに   $ cat /

記事を読む

no image

gitbucketで再起動に失敗してDBエラーが起きた話

とあるAdvent calendarを書くことになったのですが、そもそもブログを更新してなかったので

記事を読む

no image

Java8のtimeパッケージのLocalTimeとLocalDateを触ってみた

ほんのりと仕事に出てきそうな匂いがあったので、 予習もかねてjava8のtimeパッケージを触

記事を読む

no image

jenkinsのジョブでIllegalArgumentExceptionが起きた

Jenkinsのジョブで、 java.lang.IllegalArgumentException:

記事を読む

Message

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

no image
学生時代に1ミリも知らなかったJavaの開発風景

※この記事は、苫小牧高専 Advent Calendar 2016 -

no image
gitbucketで再起動に失敗してDBエラーが起きた話

とあるAdvent calendarを書くことになったのですが、そもそ

no image
機械学習について簡単におさらいした

機械学習について、実際あんまりよくわかってなくね?ってなったので

no image
svnを使っている作業場でgitを普及させるためにやったこと

今回は、ある作業場でgitを普及させたい!という思いから、私が個人的に

no image
jenkinsのジョブでIllegalArgumentExceptionが起きた

Jenkinsのジョブで、 java.lang.IllegalArgu

→もっと見る

PAGE TOP ↑