2014-02-06 145 views
1

我使用密码对文件进行了压缩和保护。 现在我需要用java取回文件。所以我需要解锁密码并使用Java解压缩,以便与文件建立适当的连接。阅读Java中受密码保护的ZIP文件

我的第一个问题是:Java是否解压缩并解锁本地驱动器上的压缩文件? (所以没有人保护它?)。

我已阅读了关于加密的所有内容,但真正在这里寻找最简单的方法。 此链接:http://blog.alutam.com/2009/10/31/reading-password-protected-zip-files-in-java/

我的第二个问题是关于上面的链接:(?是硬编码),我找不到他在哪里指着自己的压缩文件在本地驱动器+他用来解开文件的密码就行

谢谢

+0

_I找不到他指着他的压缩文件在本地驱动器+他用来解开文件的密码上线(是硬编码?)_号正如你所看到的,他使用'args [0]'和'args [1]'。这意味着他从命令行参数中获取zip文件路径和密码 – BackSlash

回答

4

您可能希望有Zip4j

主要特点看:

  1. 创建,添加,提取,更新,从压缩文件中删除文件
  2. 读/写密码保护的Zip文件
  3. 支持AES 128/256加密
  4. 支持标准的zip加密
  5. 支持ZIP64格式
  6. 支持存储(无压缩)及收缩的压缩方法
  7. 创建或提取分割Zip文件(例如:Z01,Z02,... ZIP)文件
  8. 支持Unicode文件名
  9. 进度监控
+0

Zip4J是一个很好的工具。但问题是,它提取了我的本地驱动器上某处的压缩文件。所以它不再被加密。我没有看到压缩它的重点,如果Java需要解压缩到达文件.. – RobinHo

+0

@RobinHo您错过了这一点。压缩文件是一个压缩的压缩文件,当然你需要解压缩才能读取文件。如果你只是想要它包含的文件列表,那么就不需要解压缩,但是如果你想读取,你必须解压文件。 – BackSlash

+1

好吧,你可以创建一个文件列表,并把一切(内容)放在一个输入流中。现在阅读并完成后关闭它。有一个选项getInputStream()将其转换为流。 – Helios