是的,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
的构造函数来实现。