【发布时间】:2012-01-07 17:08:27
【问题描述】:
我的文件中有以 ASCII 码形式写入的数字。例如“9”存储为两个字节 57,即总共 8 位。
我想通过将这些数字存储为二进制值来优化存储,例如 0-9 的数字仅使用 4 位存储。
有什么帮助吗?!
【问题讨论】:
-
您的意思是“9”存储为“57”吗?我看不到 ascii 57 如何使用 2 个字节。
-
yes char "9" 以两个字节的形式存储在文件中,一个是 5,另一个是 7
-
你很可能在这里用你的算法制造错误。你不能使用 Zip 库来压缩你的文件吗? Zip 或存档库的算法比您自己想出的要复杂得多。
-
顺便说一句:'9' 占用一个字节,两个带有分隔符。如果将其存储为
int二进制文件,则需要 4 个字节,这是两倍大。使用二进制并不能保证它会小得多。如果你想要更紧凑,我建议使用 GZIPOutputStream 来压缩数据。