请用java编写满足以下条件的代码:(1)输入 一个文件的绝对地址,可能是单个文件也有可能是文件夹,但是对应地址的文件保证存在。(2)对于输入的文件进行筛选,对于7z类型的文件,解压到原文件夹只内。(3)对于一些需要密码的压缩文件可以从同程序代码目录下的pwd.txt文件中读取密码。并且可以保证有需要的所有密码。
时间: 2023-03-14 18:13:14 浏览: 93
java实现用密码加密压缩文件
4星 · 用户满意度95%
下面是编写满足上述条件的Java代码:import java.io.*;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;public class UnzipFile { public static void main(String[] args) throws IOException {
File file = new File("你的文件路径");
if(file.isDirectory()){
File[] files = file.listFiles();
for (File f : files) {
unzipFile(f);
}
}else {
unzipFile(file);
}
} public static void unzipFile(File file) throws IOException {
if(file.getName().endsWith(".7z")){
FileInputStream fis = new FileInputStream(file);
ZipInputStream zis = new ZipInputStream(fis);
ZipFile zf = new ZipFile(file);
String pwd = getPwd(file.getParentFile());
zf.setPassword(pwd.toCharArray());
zis.getNextEntry();
FileOutputStream fos = new FileOutputStream(file.getParentFile() + File.separator + file.getName().substring(0, file.getName().length() - 3));
int len;
byte[] buf = new byte[1024];
while((len = zis.read(buf)) != -1){
fos.write(buf, 0, len);
}
fos.close();
zis.close();
}
} public static String getPwd(File file) throws IOException {
FileInputStream fis = new FileInputStream(file + File.separator + "pwd.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String pwd = br.readLine();
br.close();
return pwd;
}}
阅读全文