ZipOutputStream
ちょっくらZip圧縮をいじっていたところ
org.apache.tools.zip.ZipOutputStream
を使うと、マルチバイト文字でも圧縮のEntryに追加できると。
んで実験してたんだけど、Susieプラグインとかで、アーカイブをフォルダのようにいじれるプラグイン
などでファイルが開けない。
FileOutputStream fos = null; BufferedOutputStream bos = null; ZipOutputStream zipOS = null; try { fos = new FileOutputStream(new File(destDir, zipFileName)); bos = new BufferedOutputStream(fos); zipOS = new ZipOutputStream(bos);
まぁざっくりとこんな感じでOutputStream作ってたんだけど、
いろいろ試行錯誤した結果・・
いやAPIとソースを読み込んだ結果(の方が出来る人間っぽいけど)
まぁいろいろした結果
// FileOutputStream fos = null; // BufferedOutputStream bos = null; ZipOutputStream zipOS = null; try { // fos = new FileOutputStream(new File(destDir, zipFileName)); // bos = new BufferedOutputStream(fos); // zipOS = new ZipOutputStream(bos); zipOS = new ZipOutputStream(new File(destDir, zipFileName));
とするとisSeekableとなるようで、
いじれるようになりました。
StreamからではなくFileからストリーム作るのがPointのようです。
んで関係ないけど、よくサンプルとかだと
ZipEntryに対して、CRC計算したり(CheckedOutputStream使ったり)ファイルサイズセットしたり
してるけど、こっち使うと、必要ないようです。
以上ちょっとしたメモ