代码之家  ›  专栏  ›  技术社区  ›  Max Stewart

在用Java读入压缩文件时,如何通过管道将输入流传输到压缩文件?

  •  7
  • Max Stewart  · 技术社区  · 18 年前

    我想执行一个程序,当它运行时,读入它的输出并将输出输出输出到一个压缩文件中。程序的输出可能相当大,所以我们的想法是不要在内存中保存太多,只要在我得到它时将它发送到zip。

    1 回复  |  直到 18 年前
        1
  •  8
  •   deHaar    7 年前
    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 i、 e.当您打开myFile.zip时,其中有3个文件,每个文件都是一个 .

    3. 你说的对吗 进入你的 ZipOutputStream

    4. 读你的书 inputStream 输入字节缓冲区,并记住计数。
    5. 而 count 不是 -1 zipStream .
    6. 读下一行。

    推荐文章