Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-14.log failed
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
study:java:compress [2008/04/30 05:49] – banana | study:java:compress [2010/04/05 14:44] (現在) – banana | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== Compressing a byte array to a zip file ====== | + | ====== Compressing a byte array in the ZIP format |
- | **バイトarray**を圧縮したり、zipファイルを圧縮したりするのは、java.util.zipのAPIを用いれば簡単に出来る。\\ | + | **バイトarray**を圧縮したり、zipファイルを出力したりするのは、java.util.zipのAPIを用いれば簡単に出来る。\\ |
では、バイトarrayを圧縮してzipファイルで出力するのも可能なのか?結論から言えば可能だ。\\ | では、バイトarrayを圧縮してzipファイルで出力するのも可能なのか?結論から言えば可能だ。\\ | ||
しかし、あえてファイルではなくバイトアレイを圧縮する必要があるのか。もしファイルを作れない環境であれば((たとえば、サーバのファイルシステムが分からない場合や権限の為、ファイルの作成ができない場合だ。))十分考えられる状況である。\\ | しかし、あえてファイルではなくバイトアレイを圧縮する必要があるのか。もしファイルを作れない環境であれば((たとえば、サーバのファイルシステムが分からない場合や権限の為、ファイルの作成ができない場合だ。))十分考えられる状況である。\\ | ||
+ | |||
+ | {{keywords> | ||
===== Transfer bytes from a byte array to the ZIP file ===== | ===== Transfer bytes from a byte array to the ZIP file ===== | ||
行 73: | 行 75: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Example of compressing a byte array ===== | ||
+ | ここで、肝心なのは圧縮の対象となるファイルのentry名を指定するところだ。\\ | ||
+ | 不思議にファイルを何も作っていないのに、まるで作られているように引数で渡している。\\ | ||
+ | 実際、" | ||
+ | なぜかというと、拡張子を含めてentry名を渡さなければ、圧縮対象ファイルの種類が分からない為だ。 | ||
+ | |||
+ | <code java> | ||
+ | byte[] buffer = ((ByteArrayOutputStream)out).toByteArray(); | ||
+ | |||
+ | response.setContentType(" | ||
+ | response.addHeader(" | ||
+ | |||
+ | long contentLength = compressor.writeZipStream(buffer, | ||
+ | res.setHeader(" | ||
+ | res.setHeader(" | ||
+ | // | ||
+ | </ | ||
+ | |||
+ | ===== reference ===== | ||
+ | - [[http:// | ||