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使ったり)ファイルサイズセットしたり
してるけど、こっち使うと、必要ないようです。

以上ちょっとしたメモ