gpt4 book ai didi

java ZipOutputStream 不压缩

转载 作者:行者123 更新时间:2023-11-29 05:34:54 28 4
gpt4 key购买 nike

我试图通过 ZipOutputStream 输出数据,但生成的文件未压缩。这是在 Windows 7 下。这是一个示例:

import java.io.*;
import java.nio.file.*;
import java.util.Random;
import java.util.zip.*;

public class Testy {
public static void main(String[] args) {
byte[] data = new byte[100];
Random rnd = new Random(System.currentTimeMillis());
try {
BufferedOutputStream out = new BufferedOutputStream(Files.newOutputStream(
Paths.get("record.zip"), StandardOpenOption.CREATE, StandardOpenOption.APPEND), 200000);
ZipOutputStream zout = new ZipOutputStream(out);
zout.setLevel(4);

zout.putNextEntry(new ZipEntry("record.dat"));
for (int i = 0; i < 10000; i++) {
rnd.nextBytes(data);
zout.write(data, 0, data.length);
Thread.sleep(1L);
}
zout.closeEntry();
zout.finish();
zout.close();
} catch (IOException | InterruptedException e) {
e.printStackTrace(System.out);
}
}
}

谢谢你的帮助

最佳答案

压缩通过使用较短的字节序列对输入中的重复和可预测模式进行编码来工作。一个完全随机的输入,就像你在这里,没有可预测的模式,也不能被压缩。如果您压缩一个已经压缩过的文件,也会发生同样的情况。

尝试生成随机大写字符、随机英文单词或随机 DNA 序列(字母 A C T G)而不是随机字节,您将看到它们的压缩效果如何。

关于java ZipOutputStream 不压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19867344/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com