7

プログラムを実行したいのですが、プログラムが実行されると、その出力が読み取られ、出力が圧縮されたファイルにパイプアウトされます。プログラムの出力は非常に大きくなる可能性があるため、メモリに保持しすぎないようにします。取得したときにzipに送信するだけです。

4

1 に答える 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);
}

言い換えると:

  1. を作成しZipOutputStream、書き込み先のファイルを指定します。
  2. ZipEntryその zip ファイル内のファイルを構成する を作成します。つまり、myFile.zip を開くと、そこに 3 つのファイルがあり、各ファイルはZipEntry.

  3. あなたはそれZipEntryをあなたのZipOutputStream

  4. データを読み込むバイト バッファを作成します。
  5. あなたからinputStreamバイトバッファに読み込み、カウントを覚えておいてください。
  6. countがそうでない間は-1、そのバイト バイファーを に書き込みますzipStream
  7. 次の行を読みます。

完了したら、ストリームを閉じます。必要に応じてメソッドでラップします。

于 2008-09-26T03:51:49.667 に答える