java将文件夹或文件进行压缩
来源:互联网 发布:琴房隔音 知乎 编辑:程序博客网 时间:2024/05/21 18:47
PS:下面main方法有演示;
1,导入jar
<!-- 压缩包 --> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.4</version> </dependency>
如果你不是maven,那么下载
[ ant.jar包下载]
2,示例代码
import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.CRC32;import java.util.zip.CheckedOutputStream;import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream;public class FileCompress { static final int BUFFER = 8192; //初始化 private File zipFile; public FileCompress(String pathName) { zipFile = new File(pathName); } /** * 压缩文件 * @param srcPathName */ public void compress(String srcPathName) { File file = new File(srcPathName); if (!file.exists()){ throw new RuntimeException(srcPathName + "不存在!"); } try { FileOutputStream fileOutputStream = new FileOutputStream(zipFile); CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream, new CRC32()); //不加CRC32,一样可以生成文件。关于数据如何校验,请高手指点 ZipOutputStream out = new ZipOutputStream(cos); out.setEncoding("gbk"); //如果不加此句,压缩文件依然可以生成,只是在打开和解压的时候,会显示乱码,但是还是会解压出来 String basedir = ""; compress(file, out, basedir); out.close(); } catch (Exception e) { throw new RuntimeException(e); } } /** * 压缩一个目录 * @param dir * @param out * @param basedir */ private void compressDirectory(File dir, ZipOutputStream out, String basedir) { if (!dir.exists())return; File[] files = dir.listFiles(); for (int i = 0; i < files.length; i++) { /* 递归 */ compress(files[i], out, basedir + dir.getName() + "/"); } } private void compress(File file, ZipOutputStream out, String basedir) { /* 判断是目录还是文件 */ if (file.isDirectory()) { this.compressDirectory(file, out, basedir); } else { this.compressFile(file, out, basedir); } } /** * 压缩一个文件 * @param file * @param out * @param basedir */ private void compressFile(File file, ZipOutputStream out, String basedir) { if (!file.exists()) { return; } try { BufferedInputStream bis = new BufferedInputStream( new FileInputStream(file)); ZipEntry entry = new ZipEntry(basedir + file.getName()); out.putNextEntry(entry); int count; byte data[] = new byte[BUFFER]; while ((count = bis.read(data, 0, BUFFER)) != -1) { out.write(data, 0, count); } bis.close(); } catch (Exception e) { throw new RuntimeException(e); } } //main测试 public static void main(String[] args) { FileCompress zc = new FileCompress("H://中文.zip"); zc.compress("H://test中文"); //压缩一个文件夹 System.out.println("123"); }}
阅读全文
0 0
- java将文件夹或文件进行压缩
- java实现将文件或文件夹压缩
- 使用java对文件或文件夹进行压缩和加密
- 使用java对文件或文件夹进行压缩和加密
- 使用java对文件或文件夹进行压缩和加密
- 使用java对文件或文件夹进行压缩和加密
- 使用java对文件或文件夹进行压缩和加密
- 使用java对文件或文件夹进行压缩和加密
- 使用java对文件或文件夹进行压缩和加密
- java压缩文件夹或文件
- java压缩文件夹或文件的方法
- 对文件或文件夹进行压缩解压加密解密
- 使用zip对文件或文件夹进行压缩, 解压缩
- 使用zip对文件或文件夹进行压缩, 解压缩
- 【Java】对文件或文件夹进行重命名
- Java实现将一个文件进行压缩
- java 将指定文件夹递归的进行zip打包压缩
- android文件或文件夹压缩
- jstl各种日期处理
- 关于Android6.0权限管理 动态注册
- LCM模块驱动编译烧写流程简记
- java判断一个数是否是回文数
- 屏幕高度的获取以及高度的自适应问题
- java将文件夹或文件进行压缩
- 机器学习实战-kNN笔记
- 非注解和注解的处理器映射器和适配器---SpringMVC学习笔记(三)
- 【python 图像检测】图像模糊检测算法
- ng-style用于背景图片的样式方法
- 每天一个linux命令(8):cp 命令
- 第十三篇:TCP中的四大定时器
- 图是否是树-LintCode
- 集合笔记