1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Java将多个文件打成一个压缩包

Java将多个文件打成一个压缩包

时间:2019-06-02 02:25:16

相关推荐

Java将多个文件打成一个压缩包

Java将多文件打成压缩包

package com.filezip;import mons.io.IOUtils;import java.io.*;import java.util.ArrayList;import java.util.List;import java.util.zip.Adler32;import java.util.zip.CheckedOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;/*** @author wuYuHua* @version 1.0.0* @ClassName Example.java* @Description 示例* @createTime 09月13日 17:05:00*/public class Example {private static final String OUT = "H:/temp";private static final String FILE_ONE_PATH = "H:\\zip\\node-v16.17.0-x64.msi";private static final String FILE_TWO_PATH = "H:\\zip\\nvm-setup.exe";public static void main(String[] args) {List<File> files = new ArrayList<>();// 获取两个文件File fileOne = new File(FILE_ONE_PATH);File fileTwo = new File(FILE_TWO_PATH);files.add(fileOne);files.add(fileTwo);try {zipFile(files);} catch (IOException e) {e.printStackTrace();}}private static void zipFile(List<File> fileList) throws IOException {// 文件的压缩包路径String zipPath = OUT+"/"+System.currentTimeMillis()+".zip";// 获取文件压缩包输出流try (OutputStream outputStream = new FileOutputStream(zipPath);CheckedOutputStream checkedOutputStream = new CheckedOutputStream(outputStream,new Adler32());ZipOutputStream zipOut = new ZipOutputStream(checkedOutputStream)){for (File file : fileList) {// 获取文件输入流InputStream fileIn = new FileInputStream(file);// 使用 common.io中的IOUtils获取文件字节数组byte[] bytes = IOUtils.toByteArray(fileIn);// 写入数据并刷新zipOut.putNextEntry(new ZipEntry(file.getName()));zipOut.write(bytes,0,bytes.length);zipOut.flush();fileIn.close();}} catch (FileNotFoundException e) {e.printStackTrace();}}}

依赖

<dependency><groupId>mons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version></dependency>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。