大多数压缩方式来存储String Object

时间:2013-10-06 18:53:08

标签: java string object binary save

我有一个我要保存到文件的String对象,我不在乎它是保存为纯文本还是二进制文件。我尝试保存为纯文本,大约27个字节。然后我尝试了ObjectOutputStream,这是24个字节。有没有更好的方法将String对象保存到文件中?字符串是189:25:600:-324324214&并打算拥有成千上万的人。这就是为什么我想要它压缩,当然每个字符串将有点不同

2 个答案:

答案 0 :(得分:2)

以下是用于压缩的一些选项:

  1. GZIPOutputStream(“gzip包装中的deflate”)
  2. DeflaterOutputStream(“普通的deflate”,推荐使用gzip或者 zip“wrappers”)标准
  3. LZMA Java implementations
  4. jZlib
  5. LZO-Java
  6. Lz4-java and LZ4-HC(Lz4快速,压缩比合理,LZ4-HC适用于高压缩)
  7. XZ(包含LZMA2压缩算法)
  8. snappy-java(使用JNI,由Google根据LZ77的想法开发)
  9. 我现在只使用1,2,4和7 :)。使用XZ对我来说似乎是合理的,快速和更高的压缩比和非常容易使用。

    XZOutputStream out = new XZOutputStream(outstream, LZMA2Options);
    InputStream in = new XZInputStream(anInputstream);
    

答案 1 :(得分:2)

FileOutputStream内的DeflatorOutputStream内包裹ObjectOutputStream以创建文件。 (将整个数组写为单个对象。)然后将FileInputStream包裹在InflatorInputStream内的ObjectInputStream内进行阅读。