压缩数据

时间:2013-12-12 19:12:21

标签: java compression zip inflate deflate

出于某种原因,我无法在网上找到关于如何执行以下操作的实例,所以如果这里的任何人都可以提供帮助,那就太棒了

我正在通过Java 6中的套接字传输文件,我想压缩数据。我已经查看了ZIP输入流,虽然它似乎很好,但我没有任何问题,只有它让它工作。我宁愿做的是:

  1. 将未压缩(正常)文件读入byte []数组
  2. 在内存中,将byte []压缩为另一个zip压缩的字节[]
  3. 在正常的OutputStream上传输新的压缩字节[](没有花哨的deflater / inflater类来处理)
  4. 另一方面,将zip解压缩回其原始字节[]并将其写入新文件。
  5. 我很欣赏有关如何执行这4个步骤的任何示例:)

    这就是为什么我不想使用Zip IO Stream:Problems with using ZipOutputStream and ObjectOutputStream

2 个答案:

答案 0 :(得分:0)

您可以使用Java中提供的ZipInputStream。以下是您可以用来完成所需内容的课程

ZipInputStream ZipOutputStream

如果您之前曾在IO Streams工作过,那么这是一个蛋糕漫步。如果你仍然无法让它工作,请告诉我。

答案 1 :(得分:0)

网上有很多压缩包。你可以试着看看这个:https://code.google.com/p/kanzi/。 数据可以压缩为流或缓冲区:E.G。创建一个CompressedOutputStream并向其写入数据:cos.write(array,0,len); 可以指定不同的常用压缩方法来达到您的速度/压缩比目标。 这里有一个完整的例子:https://code.google.com/p/kanzi/source/browse/java/src/kanzi/test/TestBlockCoder.java