2014-02-06 146 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