是的,Java中可以使用密码来加密和解密ZIP文件。可以使用ZipEntry.setCrc
方法设置密码,以确保只有知道密码的用户才能解压缩文件。以下是一个简单的示例代码:
import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class UnzipWithPassword { public static void main(String[] args) { String zipFilePath = "encrypted.zip"; String destDir = "unzipped"; String password = "mypassword"; try { byte[] buffer = new byte[1024]; ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFilePath)); ZipEntry zipEntry = zis.getNextEntry(); while (zipEntry != null) { String fileName = zipEntry.getName(); FileOutputStream fos = new FileOutputStream(destDir + "/" + fileName); int len; while ((len = zis.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.close(); zipEntry = zis.getNextEntry(); } zis.closeEntry(); zis.close(); System.out.println("File unzipped successfully"); } catch (Exception e) { System.out.println("Error unzipping file: " + e.getMessage()); } } }
在上面的示例中,我们通过ZipInputStream
读取ZIP文件中的内容,然后逐个解压缩文件。要使用加密ZIP文件,您需要在解压缩文件之前设置密码。这可以通过将密码传递给ZipInputStream
的构造函数来实现。