1

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

4

2 回答 2

2

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

  1. GZIPOutputStream(“gzip 包装器中的放气”)
  2. DeflaterOutputStream(“plain deflate”,推荐超过 gzip 或 zip“包装器”)标准
  3. LZMA Java 实现
  4. jZlib
  5. LZO-Java
  6. Lz4-java 和 LZ4-HC(Lz4 速度快,压缩比合理,LZ4-HC 用于高压缩)
  7. XZ(包含 LZMA2 压缩算法)
  8. snappy-java(使用 JNI,由 Google 根据 LZ77 的想法开发)

好吧,到目前为止,我只使用了 1、2、4 和 7 :)。使用 XZ 对我来说似乎是合理的,快速和更高的压缩比并且非常易于使用。

XZOutputStream out = new XZOutputStream(outstream, LZMA2Options);
InputStream in = new XZInputStream(anInputstream);
于 2013-10-06T19:03:40.847 回答
2

将 a 包裹FileOutputStream在 aDeflatorOutputStreamObjectOutputStream以创建文件。(将整个数组写为单个对象。)然后将 a 包裹FileInputStream在一个InflatorInputStreaminside anObjectInputStream中以读取。

于 2013-10-06T19:05:25.773 回答