文件压缩解压工具类。文件压缩格式为zip
Posted jonalin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件压缩解压工具类。文件压缩格式为zip相关的知识,希望对你有一定的参考价值。
package com.JUtils.file; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; /** * 文件压缩、解压工具类。文件压缩格式为zip * * @Author:chenssy * @date:2016年5月24日 下午9:16:01 */ public class ZipUitls /** 文件后缀名 */ private static final String ZIP_FILE_SUFFIX = ".zip"; /** * 压缩文件 * * @author:chenssy * @date : 2016年5月24日 下午9:56:36 * * @param :resourcePath * 源文件 * @param :targetPath * 目的文件,保存文件路径 */ public static void main(String[] args) String fileName = "D:/file/compare.json"; String file = "D:/file/ZipUitls"; zipFile(fileName,file); public static void zipFile(String resourcePath,String targetPath) File resourcesFile = new File(resourcePath); File targetFile = new File(targetPath); //目的文件不存在,则新建 if(!targetFile.exists()) targetFile.mkdirs(); //文件名 String targetName = resourcesFile.getName() + ZIP_FILE_SUFFIX; ZipOutputStream out = null; try FileOutputStream outputStream = new FileOutputStream(targetPath+"//"+targetName); out = new ZipOutputStream(new BufferedOutputStream(outputStream)); compressedFile(out, resourcesFile, ""); catch (FileNotFoundException e) e.printStackTrace(); finally if (out != null) try out.close(); catch (IOException e) e.printStackTrace(); /** * * @author:chenssy * @date : 2016年5月24日 下午10:00:22 * * @param out * @param : resourcesFile * @param dir */ private static void compressedFile(ZipOutputStream out, File file, String dir) FileInputStream fis = null; try if (file.isDirectory()) //文件夹 // 得到文件列表信息 File[] files = file.listFiles(); // 将文件夹添加到下一级打包目录 out.putNextEntry(new ZipEntry(dir + "/")); dir = dir.length() == 0 ? "" : dir + "/"; // 循环将文件夹中的文件打包 for (int i = 0; i < files.length; i++) compressedFile(out, files[i], dir + files[i].getName()); // 递归处理 else //如果是文件则打包处理 fis = new FileInputStream(file); out.putNextEntry(new ZipEntry(dir)); // 进行写操作 int j = 0; byte[] buffer = new byte[1024]; while ((j = fis.read(buffer)) > 0) out.write(buffer, 0, j); // 关闭输入流 catch (FileNotFoundException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally if(fis != null) try fis.close(); catch (IOException e) e.printStackTrace();
以上是关于文件压缩解压工具类。文件压缩格式为zip的主要内容,如果未能解决你的问题,请参考以下文章