くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

JavaでZipする/UnZipするzt-zipがすてき

Javaでzipファイルを扱いたいなとときの備忘録。
zt-zipが簡単そうだったので、その使い方まとめ

dependenciesはこんな感じ

compile 'org.zeroturnaround:zt-zip:1.12'

Zipする

zipする:名前はそのまま。拡張子も変わらない

File targetFile = ....; // zipする対象のFile
ZipUtil.unexplode(targetFile);

zipする:出力先を指定

File targetFile = ....; // zipする対象のFile
File zipFile = ....;     // 作成するzipのFile
ZipUtil.pack(outputDir, zipFile);

zipする:zipする際に、ディレクトリ(dir)配下にファイルを配置

ZipUtil.pack(outputDir, zipFile, new NameMapper() {
    @Override
    public String map(String name) {
        return "dir/" + name;
    }
});

UnZipする

unzipする:名前はそのまま。拡張子も変わらない

File zipFile = ...; // unzipする対象のFile
ZipUtil.explode(zipFile);

unzipする:出力先指定

File zipFile = ....;     // unzipする対象のFile
File outputFile = ....; // 出力先のFile
ZipUtil.unpack(zipFile, outputDir);

使いやすいけど、Orma or lombokと相性がわるい?

Modelでprivateのフィールドに@Setter/@Getterをつけていたが、
dependencyを追加したところで、Ormaが生成したソースで該当のフィールドを参照している部分が、 すべてgetterから直接アクセスに変わっていた。

フィールドの可視性をpublicする形にしているが、微妙。。。時間があればもう少し見たい。

ちなみん、使っていたIDEは、Android Studio

以上!!

参考にしたサイト様