说我有一个像这样的.txt文件:
11111111111111Hello and welcome to stackoverflow. stackoverflow will hopefully provide me with answers to answers i do not know. Hello and goodbye.11111111111111
然后我将创建一个等效的二进制形式(.bin文件):
Stream.Write(intBytes, 0, intBytes.Length); // 11111111111111
Stream.Write(junkText, 0, junkText.Length); // Hello and welcome to stackoverflow...
Stream.Write(intBytes, 0, intBytes.Length); // 11111111111111
第一个例子压缩比第二个好。如果我删除11111111111111,他们压缩到相同的大小。但是拥有11111意味着.txt版本可以更好地压缩。
byte[] intBytes = BitConverter.GetBytes(11111111111111); // This is 8 bytes
byte[] strBytes = UTF8Encoding.UTF8.GetBytes("11111111111111"); // This is 14 bytes
这是使用本机C ++ Zlib库。
在压缩之前,.bin文件的大小较小,我期待这一点。
为什么压缩后.txt版本的尺寸较小?它似乎压缩比bin等效物更好。
bin文件: 未压缩尺寸:2448 压缩尺寸:177
txt文件: 未压缩尺寸:2460 压缩尺寸:167
答案 0 :(得分:2)
因此,较大的文件会压缩为较小的文件。我可以提供两种解释: