方维制网站,企业邮箱费用,网络推广就找南昌莫非传媒,星子网招聘文章目录 前言一、ZIP压缩输出流是什么#xff1f;二、使用介绍 1.使用方法2.实操展示总结 前言 该篇文章相对应的介绍如何使用java代码将各种文件#xff08;文件夹#xff09;从ZIP压缩文件中取出到指定的文件夹中。解压流将ZIP文件中的文件以条目的形式逐一读取#xff…文章目录 前言一、ZIP压缩输出流是什么二、使用介绍 1.使用方法2.实操展示总结 前言 该篇文章相对应的介绍如何使用java代码将各种文件文件夹从ZIP压缩文件中取出到指定的文件夹中。解压流将ZIP文件中的文件以条目的形式逐一读取数据写入对应创建的文件夹中。 一、ZIP压缩输出流是什么 Zip压缩输出流是指将数据从Zip文件中解压到指定文件的输出流。ZipInoutStream类可读取ZIP压缩格式的文件包括已压缩和未压缩的条目entry。
二、使用介绍
1.使用方法
1构造方式
new ZipInputStream(InputStream in);
//该构造方式参数 in 为输出流对象 2常用方法
ZipInputStream类的常用方法 方法功能描述read(byte[] b,int off,int len)读取字节数组b内off偏移量的位置长度是len字节available()判断是否已读完目前entry所指定的数据。已读完返回0否则返回1closeEntry()关闭当前ZIP条目并定位流以读取下一个条目skip(long n)跳过当前ZIP条目中的指定字节数getNextEntry()读取下一个ZipEntry,并将流内的位置移至该entry所指数据的开头createZipEntry(String name)以指定的name参数新建一个ZipEntry对象 解压流程图 2.实操展示
代码如下示例
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;public class DeZip1 {public static void unzipFile(File zipFile, String destDirectory) {byte[] buffer new byte[1024]; //创建缓存区try (ZipInputStream zis new ZipInputStream(new FileInputStream(zipFile))) {ZipEntry zipEntry zis.getNextEntry(); //开启Zip条目while (zipEntry ! null) { //循环读取全部压缩文件String fileName zipEntry.getName(); //获取压缩文件名称//创建解压文件 File newFile new File(destDirectory File.separator fileName); if (zipEntry.isDirectory()) { //若条目为文件夹创建完整的文件夹目录newFile.mkdirs();} else { //若条目为文件//创建解压文件的父目录确保解压文件目录结构正常new File(newFile.getParent()).mkdirs();//创建文件输入流 try (FileOutputStream fos new FileOutputStream(newFile)) { int len;//解压流将数据从压缩包读取输入流将数据写入解压文件中while ((len zis.read(buffer)) 0) { fos.write(buffer, 0, len);fos.flush();}}}zipEntry zis.getNextEntry();}zis.closeEntry();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {File zipFile new File(D:/word.zip);String destDirectory D:/word;unzipFile(zipFile, destDirectory);}
}
运行结果 压缩包中的文件
运行后文件被解压到了指定文件 mkdirs()方法如何获取到文件的路径 mkdirs() 方法是 Java 中的一个文件夹创建方法用于创建一个文件夹以及它的所有父文件夹。该方法会返回一个 boolean 类型的值表示文件夹是否创建成功。 mkdirs() 方法获取文件夹路径的方式主要通过传入参数来实现。你可以在方法中传入一个字符串类型的参数该参数表示文件夹的路径。例如 File dir new File(C:\\Users\\username\\Documents\\myFolder);
dir.mkdirs(); 在上述代码中我们首先创建了一个 File 对象然后传入一个字符串类型的参数 “C:\Users\username\Documents\myFolder”表示要创建的文件夹路径。然后调用 mkdirs() 方法创建该文件夹及其父文件夹。 mkdirs()方法具体是如何获取创建多层目录的 mkdirs()方法是Java中File类提供的一个方法用于创建多级目录。 该方法的实现原理是在创建指定路径的目录时如果该目录的上级目录不存在则会先创建上级目录再创建指定目录。 具体的实现过程可以简单描述为以下几步 1.将传入的路径分割成各级目录名使用File.separatorChar分割 2.从最上级目录开始逐层判断是否存在如果不存在则创建该目录 3.重复步骤2直到所有目录都创建完成。 例如假设要创建路径为/a/b/c/d的目录而其中的上级目录a、“a/b”、a/b/c都不存在则mkdirs方法会按照以下步骤进行创建 分割路径得到目录名数组[“”, “a”, “b”, “c”, “d”] 判断目录是否存在不存在则创建 判断目录a是否存在不存在则创建 判断目录a/b是否存在不存在则创建 判断目录a/b/c是否存在不存在则创建 判断目录a/b/c/d是否存在不存在则创建 这样就完成了整个路径的创建。 总结 以上就是使用ZipinputStream类解压ZIP文件的介绍本文仅简单介绍了ZipInputStream流的使用而ZipInputStream流更多的实战经验仍然需要我们在项目和实践中获取。有拓展或指正的内容欢迎在评论区中留言。