Zipファイルのコメント by Java

  • Zipファイル内のエントリー単位のコメントは ZipEntry#getComment() で取得する。しかし、ZipFileを用いた場合は正しく取得できるが、ZipInputStreamを用いた場合はnullしか返らず取得できない。
  • Zipファイル単位のコメントは、ZipOutputStream#setComment()で書き出しはできるが、読込みのメソッドが存在しないため取得できない。
  • ファイル名のエンコードはUTF-8固定なので一般的なアーカイブツールを使って展開すると日本語が文字化け。jarコマンドでは化けない。org.apache.tools.zip.ZipOutputStream#setEncodig(String)を使えば良いらしい。
Zipファイルの扱い関してSunの人はやる気なさすぎ。
一つ目の件についてはZIPフォーマットとストリームの都合らしく「バグではない。仕様だ。」としているが、APIのJavaDocにその旨が書いてない。
二つ目はAPIを用意しなかったミスだろう。Javaは全体的な思想や考慮に良い点が多いだけにとても残念。

コメントを残す

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