失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java将文件夹压缩成zip java按照目录结构压缩文件夹

java将文件夹压缩成zip java按照目录结构压缩文件夹

时间:2020-03-04 03:32:52

相关推荐

java将文件夹压缩成zip java按照目录结构压缩文件夹

前言

用java将文件夹压缩成zip包,像压缩软件一样,按照目录结构压缩(包含当前文件夹)网上没有找到太合适的,借鉴其它帖子,自己写了一个

代码

package xin.yangshuai.mybatisgeneratorweb.util;import java.io.*;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;/*** ZipUtils** @author shuai* @date /7/30*/public class ZipUtils {public static void main(String[] args) throws Exception {File sourceFile = new File("D:/test/testFile");fileToZip(sourceFile);}/*** sourceFile一定要是文件夹* 默认会在同目录下生成zip文件** @param sourceFilePath* @throws Exception*/public static void fileToZip(String sourceFilePath) throws Exception {fileToZip(new File(sourceFilePath));}/*** sourceFile一定要是文件夹* 默认会在同目录下生成zip文件** @param sourceFile* @throws Exception*/public static void fileToZip(File sourceFile) throws Exception {if (!sourceFile.exists()) {throw new RuntimeException("不存在");}if (!sourceFile.isDirectory()) {throw new RuntimeException("不是文件夹");}//zip文件生成位置File zipFile = new File(sourceFile.getAbsolutePath() + ".zip");FileOutputStream fos = new FileOutputStream(zipFile);ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos));fileToZip(zos, sourceFile, "");zos.close();fos.close();}private static void fileToZip(ZipOutputStream zos, File sourceFile, String path) throws Exception {System.out.println(sourceFile.getAbsolutePath());//如果是文件夹只创建zip实体即可,如果是文件,创建zip实体后还要读取文件内容并写入if (sourceFile.isDirectory()) {path = path + sourceFile.getName() + "/";ZipEntry zipEntry = new ZipEntry(path);zos.putNextEntry(zipEntry);for (File file : sourceFile.listFiles()) {fileToZip(zos, file, path);}} else {//创建ZIP实体,并添加进压缩包ZipEntry zipEntry = new ZipEntry(path + sourceFile.getName());zos.putNextEntry(zipEntry);byte[] bufs = new byte[1024 * 10];//读取待压缩的文件并写进压缩包里FileInputStream fis = new FileInputStream(sourceFile);BufferedInputStream bis = new BufferedInputStream(fis, 1024 * 10);int read = 0;while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) {zos.write(bufs, 0, read);}bis.close();fis.close();}}}

如果觉得《java将文件夹压缩成zip java按照目录结构压缩文件夹》对你有帮助,请点赞、收藏,并留下你的观点哦!

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