我有一个包含25,000个浮点数(,
分隔符)的文件,大约有100K这样的行。该文件的一行看起来像:
1689.97,-9643.39,-82082.1,9776.09,-33974.84,-67247.38,32997.34,72811.53,31642.87,-949.6,9340.68,-85854.48,-17705.36,187.74,-3002.6,-35812.21,37382.32,22770.78,40893.09,45743.99,-6500.92,26243.85,13975.95,0,56669.47,-25865.36,-17066.78,26788.57,0,-36554.86,-3687.19,18933.93
我有两个问题。
我查看了gzip
和zcat
,这是很好的选择。但我想找到一些压缩或序列化算法来通过Java/Python
存储数据并执行读取而不解压缩。
答案 0 :(得分:3)
在Java中,您可以使用GZIPOutputStream将OutputStream
和GZIPInputStream InputStream
包裹在一起,使用GZIP算法即时压缩/解压缩您的数据。
答案 1 :(得分:0)
使用DataOutPutStream
和writeFloat,您不需要使用逗号分隔符
答案 2 :(得分:0)
您可以将其写为字节,而不是将其写为文本。你必须转换为/从premitives转换为字节数组,但我认为这不会太难。我知道您可以使用Float.floatToRawIntBits()转换为int,并使用Float.intBytesToFloat()从int返回。将int转换为byte []只需要几个位移。