java 压缩
来源:互联网 发布:mysql从删库到跑路 编辑:程序博客网 时间:2024/06/14 21:02
import java.io.BufferedInputStream; 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 admin * */ public final class FileToZip { private FileToZip(){} /** * 将存放在sourceFilePath目录下的源文件,打包成fileName名称的zip文件,并存放到zipFilePath路径下 * @param sourceFilePath :待压缩的文件路径 * @param zipFilePath :压缩后存放路径 * @param fileName :压缩后文件的名称 * @return */ public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName){ boolean flag = false; File sourceFile = new File(sourceFilePath); FileInputStream fis = null; BufferedInputStream bis = null; FileOutputStream fos = null; ZipOutputStream zos = null; if(sourceFile.exists() == false){ System.out.println("待压缩的文件目录:"+sourceFilePath+"不存在."); }else{ try { File zipFile = new File(zipFilePath + "/" + fileName +".zip"); if(zipFile.exists()){ System.out.println(zipFilePath + "目录下存在名字为:" + fileName +".zip" +"打包文件."); }else{ File[] sourceFiles = sourceFile.listFiles(); if(null == sourceFiles || sourceFiles.length<1){ System.out.println("待压缩的文件目录:" + sourceFilePath + "里面不存在文件,无需压缩."); }else{ fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(new BufferedOutputStream(fos)); byte[] bufs = new byte[1024*10]; for(int i=0;i<sourceFiles.length;i++){ //创建ZIP实体,并添加进压缩包 ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName()); zos.putNextEntry(zipEntry); //读取待压缩的文件并写进压缩包里 fis = new FileInputStream(sourceFiles[i]); bis = new BufferedInputStream(fis, 1024*10); int read = 0; while((read=bis.read(bufs, 0, 1024*10)) != -1){ zos.write(bufs,0,read); } } flag = true; } } } catch (FileNotFoundException e) { e.printStackTrace(); throw new RuntimeException(e); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } finally{ //关闭流 try { if(null != bis) bis.close(); if(null != zos) zos.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } } } return flag; } public static void main(String[] args){ String sourceFilePath = "D:\\TestFile"; String zipFilePath = "D:\\tmp"; String fileName = "12700153file"; boolean flag = FileToZip.fileToZip(sourceFilePath, zipFilePath, fileName); if(flag){ System.out.println("文件打包成功!"); }else{ System.out.println("文件打包失败!"); } } }
0 0
- java 压缩和解压缩
- java 压缩和解压缩
- Java压缩和解压缩
- Java压缩和解压缩
- Java 压缩和解压缩
- JAVA压缩和解压缩
- java 压缩
- java压缩
- java压缩
- java 压缩
- Java 压缩数据流Java 压缩数据流
- java解rar压缩
- Java Zip压缩
- java压缩应用
- java的压缩程序
- Java中的文件压缩
- java压缩文件夹
- java 压缩zip
- linux centos7 安装MQTT mosquitto时常见异常及解决办法
- view 时间轴
- Java面向对象设计模式(二)——抽象工厂模式
- Java 征途:行者的地图
- 【工作点滴】——thumbnailator实现图片的压缩和裁切
- java 压缩
- wireshark学习笔记(三)
- PHP扩展安装个人学习笔记
- 修改listView中的数据并实时更新
- 设计模式之桥接模式java实现
- AlexNet原理及Tensorflow实现
- BPS中查询我参与的流程
- 正则化方法:L1和L2 regularization、数据集扩增、dropout
- 前缀树(Trie)原理及Java实现