プログラムを実行したいのですが、プログラムが実行されると、その出力が読み取られ、出力が圧縮されたファイルにパイプアウトされます。プログラムの出力は非常に大きくなる可能性があるため、メモリに保持しすぎないようにします。取得したときにzipに送信するだけです。
Max Stewart
質問する
6812 次
1 に答える
8
ZipOutputStream targetStream = new ZipOutputStream(fileToSaveTo);
ZipEntry entry = new ZipEntry(nameOfFileInZipFile);
targetStream.putNextEntry(entry);
byte[] dataBlock = new byte[1024];
int count = inputStream.read(dataBlock, 0, 1024);
while (count != -1) {
targetStream.write(dataBlock, 0, count);
count = inputStream.read(dataBlock, 0, 1024);
}
言い換えると:
- を作成し
ZipOutputStream
、書き込み先のファイルを指定します。 ZipEntry
その zip ファイル内のファイルを構成する を作成します。つまり、myFile.zip を開くと、そこに 3 つのファイルがあり、各ファイルはZipEntry
.あなたはそれ
ZipEntry
をあなたのZipOutputStream
- データを読み込むバイト バッファを作成します。
- あなたから
inputStream
バイトバッファに読み込み、カウントを覚えておいてください。 count
がそうでない間は-1
、そのバイト バイファーを に書き込みますzipStream
。- 次の行を読みます。
完了したら、ストリームを閉じます。必要に応じてメソッドでラップします。
于 2008-09-26T03:51:49.667 に答える