欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

java向zip包添加文件步骤演示(java把文件夹打包成zip压缩包)

数码知识

周芳如优秀作者

原创内容 来源:小居数码网 时间:2024-08-13 14:18:01 阅读() 收藏:44 分享:76

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有1052个文字,大小约为4KB,预计阅读时间3分钟。

前言工作中需要把一些数据放到一个zip的压缩包中,可以使用 ZipOutputStream。ZipOutputStream可以将内容直接写入到zip包中。一般创建ZipOutputStream通常是先封装一个FileOutputStream,然后在每写入一个文件之前,需要先调用一次putNextEntry,然后使用write写入byte[]类型的数据,当写入完毕的时候使用colseEntry来结束这个文件的打包。当然也可以通过ZipOutputStream直接把数据写入压缩包内,在压缩包内构建数据。

java把文件夹打包成zip压缩包

前言

使用

public static void filetest() throws IOException {    String txtPath = "D:fileTestimage2.txt";        String zipPath = "D:fileTestimage2.zip";   //压缩包路径        String str = "测试test123abc";                   //需要写入的数据        //创建压缩包        ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipPath));           //封装一个文件        FileWriter fileWriter = null;        try {            fileWriter = new FileWriter(txtPath);            fileWriter.write(str);            fileWriter.flush();            fileWriter.close();        } catch (IOException e) {            log.error("fileWriter", e);        }        //对上面封装好的文件构建一个FileInputStream        FileInputStream fis = new FileInputStream(txtPath);        //压缩包里创建一个空文件        zipOutputStream.putNextEntry(new ZipEntry("Request.json"));        //写入压缩文件        int len;        byte[] buffer = new byte[1024]; //字节数组大小可调节        //读取fis字节流,转移到buffer字节数组中去,读取后fis为空        while ((len = fis.read(buffer)) > 0) {            zipOutputStream.write(buffer, 0, len);        }        byte[] b = new byte[1024];        int a = fis.read(b);//关闭压缩包打包        zipOutputStream.closeEntry();        fis.close();        zipOutputStream.flush();        zipOutputStream.close();    }复制代码

运行之后,将会创建如下文件:

压缩包内会产生一个叫Request.json文件,如图:

内容与2.txt里的内容一致,为“测试test123abc”。

上述方法是:先创建2.txt,再读取2.txt的内容,导入到压缩包内形成文件。相同的逻辑,我们可以读取任意其他文件,然后把他们放入到压缩包内。

直接将内容导入到压缩包内

当然我们也可以直接将数据导入到压缩包内。实现如下:

  public static void filetest() throws IOException {      String zipPath = "D:fileTestimage3.zip";      //压缩包路径      String str1 = "测试test123abc";                      //需要写入的数据      String str2 = "测试2";      String Name1 = StringUtils.join("文件.json");      //压缩包里的文件      String Name2 = StringUtils.join("file/文件1.json");  //在压缩包里创建file目录下的文件      //创建压缩包      ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipPath));      //创建压缩包里的文件      zipOutputStream.putNextEntry(new ZipEntry(Name1));      byte[] bytes1 = str1.getBytes(StandardCharsets.UTF_8);      zipOutputStream.write(bytes1, 0, bytes1.length);    //将数据写入到压缩包里的文件里面      zipOutputStream.closeEntry();      zipOutputStream.putNextEntry(new ZipEntry(Name2));      byte[] bytes2 = str2.getBytes(StandardCharsets.UTF_8);      zipOutputStream.write(bytes2, 0, bytes2.length);      zipOutputStream.closeEntry();      zipOutputStream.flush();      zipOutputStream.close();  }复制代码

上述是直接将String类型数据转换成byte数组,导入到压缩包内,形成两个文件:

file文件夹里面是文件1.json,里面的内容是“测试2”,文件.json的内容则是“测试test123abc”。

最后

如果你觉得此文对你有一丁点帮助,点个赞。或者可以加入我的开发交流群:1025263163相互学习,我们会有专业的技术答疑解惑

上面就是小居数码小编今天给大家介绍的关于(java把文件夹打包成zip压缩包)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

94%的朋友还想知道的:

(259)个朋友认为回复得到帮助。

部分文章信息来源于以及网友投稿,转载请说明出处。

本文标题:java向zip包添加文件步骤演示(java把文件夹打包成zip压缩包):http://sjzlt.cn/shuma/155227.html

猜你喜欢