2013-06-05 33 views
-3

我遇到问题。目前我正在用java语言开发视频游戏。此时数据文件占用大约100MB的空间,即使游戏世界并不大。我想压缩这些文本文件,用密码或某种加密保护它们,但是我找不到任何好的和免费的库。Java字符串数据压缩

或者也许有可能将数据打包到某种类型的存档中而无需外部库?

更新 我试图下载Zip4j,但它表明我需要源附件,而且我无法在库的网站中找到它。

+0

http://docs.oracle.com/javase/6/docs/api/java/util/zip/package-summary.html? – creinig

+0

你看过java.util.zip包吗?我不认为密码保护是受支持的,但你可能会加密整个zip文件。 –

+0

JDK已经有了一个读取/写入ZIP文件的API。至于保护游戏数据,你为什么要这样做? – fge

回答

0

可以压缩侑由JDK提供的设施游戏数据:

  • java.util.ZipFile和相关的类来处理正常的zip文件
  • java.util.GZIPInput/OutputStream中对数据进行压缩直接(没有“文件目录”的概念,只是一个blob)。
  • java.util.DeflaterInput/OutputStream中(像GZIP)

有存在第3方压缩类的大量。我个人喜欢Java的XZ,因为它提供了出色的压缩比,并且通过标准流接口(http://tukaani.org/xz/java.html)很容易使用。

对于加密,存在像加密流一样使用的加密流。请注意,如果他们真的想要,任何人都可以从游戏文件中提取一些知识和耐心的“关键”。

0

Java提供了多种功能,压缩数据,如: GZIPInputStream和GZIPOutputStream

你也可以用拉链用的ZipFile( java.util.zip)

对于加密,您可以编写自己的FilterOutputStream和FilterInputStream,使用密码对其进行加密。

这些功能无需外部库即可运行。