最近项目中需要拿到.zip文件中的文件内容,之前的做法是先解压到某个目录然后在对里面的文件进行处理,后面发现其实可以不用这么做,jdk中自带的包就可以解决这个问题。示例如下:
public static void main(String[] args) throws IOException {
//获取文件输入流
FileInputStream input = new FileInputStream("C:\\Users\\admin\\Desktop\\test.zip");
ZipInputStream zipInputStream = new ZipInputStream(new BufferedInputStream(input), Charset.forName("GBK"));
ZipEntry ze = null;
//循环遍历
while ((ze = zipInputStream.getNextEntry()) != null) {
System.out.println("文件名:" + ze.getName() + " 文件大小:" + ze.getSize() + " bytes");
System.out.println("文件内容:");
//读取
BufferedReader br = new BufferedReader(new InputStreamReader(zipInputStream,Charset.forName("GBK")));
String line;
//内容不为空,输出
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
//一定记得关闭流
zipInputStream.closeEntry();
input.close();
}

该博客介绍了一种无需先解压.zip文件即可直接处理内部文件的方法。通过Java JDK内置的ZipInputStream,可以高效地遍历并读取.zip文件中的每个条目,避免了解压过程,提高程序效率。示例代码展示了如何读取文件名、大小及内容。

5852

被折叠的 条评论
为什么被折叠?



