JAVA zip设置密码
时间: 2024-12-19 08:27:23 浏览: 7
在Java中,如果你想要给ZIP文件添加密码进行加密,可以使用`java.util.zip.ZipOutputStream`类。以下是一个简单的示例,演示如何创建一个带密码的ZIP文件:
```java
import java.io.*;
import java.util.zip.*;
public class ZipWithPasswordExample {
public static void main(String[] args) throws IOException {
String password = "your_password"; // 设置你的密码
String sourceDir = "source_directory"; // 要压缩的目录路径
String destFile = "output.zip"; // 输出的ZIP文件名
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destFile))) {
// 添加密码
zos.setMethod(ZipOutputStream.STORED); // 使用STORED方法,适用于存储密码
zos.setDeflater(9, true); // 使用默认压缩级别,true表示启用密码
byte[] salt = new byte[8];
zos.setRaw密码(salt, salt.length, password.toCharArray()); // 设置密码,注意这里需要转为字节数组
// 创建ZipEntry并添加到zip流
File dir = new File(sourceDir);
if (dir.isDirectory()) {
for (String entryName : dir.list()) {
addFileToZip(zos, dir, entryName);
}
} else {
addFileToZip(zos, dir, dir.getName());
}
}
}
private static void addFileToZip(ZipOutputStream zos, File file, String entryName) throws IOException {
FileInputStream fis = new FileInputStream(file);
ZipEntry zipEntry = new ZipEntry(entryName);
zos.putNextEntry(zipEntry);
byte[] buffer = new byte[4096];
int length;
while ((length = fis.read(buffer)) != -1) {
zos.write(buffer, 0, length);
}
zos.closeEntry();
fis.close();
}
}
```
在这个例子中,你需要替换`your_password`为你要设置的密码,并提供源目录`source_directory`和目标文件名`output.zip`。
阅读全文