java文件压缩ZipOutPutStream
其实最好的书籍就是javaAPI
1.创建ZipOutPutStream流,利用BufferedOutputStream提个速.
2.新建zip方法,用来压缩文件,传参
3.zip方法利用putNextEntry来将目录点写入
4.递归目录数组
5.写入数据,关闭流
/**
* 压缩
* @author BinPeng
* @date 2019/8/6 18:19
*/
public class Zip18 {
public static void main(String[] args) throws IOException {
compreSsion("F:\\test.zip",new File("F:\\test"));//第一个参数是压缩的名字,第二个参数是要压缩的目录
}
private static void compreSsion(String zipFileName, File target) throws IOException {//压缩
System.out.println("压缩文件...");
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));
BufferedOutputStream bos=new BufferedOutputStream(out);
zip(out,target,target.getName(),bos);
bos.close();
out.close();
System.out.println("压缩完成");
} private static void zip(ZipOutputStream zout, File target, String name, BufferedOutputStream bos) throws IOException {
//判断是不是目录
if (target.isDirectory()){
File[] files=target.listFiles();
if (files.length==0){//空目录
zout.putNextEntry(new ZipEntry(name+"/"));
/* 开始编写新的ZIP文件条目,并将流定位到条目数据的开头。
关闭当前条目,如果仍然有效。 如果没有为条目指定压缩方法,
将使用默认压缩方法,如果条目没有设置修改时间,将使用当前时间。*/
}
for (File f:files){
//递归处理
zip(zout,f,name+"/"+f.getName(),bos);
}
}else {
zout.putNextEntry(new ZipEntry(name));
InputStream inputStream=new FileInputStream(target);
BufferedInputStream bis=new BufferedInputStream(inputStream);
byte[] bytes=new byte[1024];
int len=-1;
while ((len=bis.read(bytes))!=-1){
bos.write(bytes,0,len);
}
bis.close(); } } }
java文件压缩ZipOutPutStream的更多相关文章
- java文件压缩和解压
功能实现. package com.test; import java.io.File; import java.io.BufferedOutputStream; import java.io.Buf ...
- 文件压缩 ZipOutputStream类
先举一个压缩单个文件的例子吧: [例子1] import java.io.File; import java.io.FileInputStream; import java.io.FileOutput ...
- java文件压缩与解压
感谢“zlex.dongliang@gmail.com”.主要代码如下: import java.io.BufferedInputStream; import java.io.File; import ...
- java 文件压缩和解压(ZipInputStream, ZipOutputStream)
最近在看java se 的IO 部分 , 看到 java 的文件的压缩和解压比较有意思,主要用到了两个IO流-ZipInputStream, ZipOutputStream,不仅可以对文件进行压缩,还 ...
- Java文件压缩优化工具(ProGuard) 软件介绍 Soft content
ProGuard是一款免费的Java类文件的压缩.优化.混肴器.它可以帮你删除没用的类,字段,方法与属性,使字节码最大程度地优化,使用简短且无意义的名字来重命名类.字段和方法 .目前eclipse已经 ...
- Java文件压缩分割(待)
http://blog.csdn.net/ycg01/article/details/1366648
- Java实现文件压缩与解压
Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...
- Java实现文件压缩与解压[zip格式,gzip格式]
Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并 ...
- java文件处理之压缩,分割
http://blog.csdn.net/ycg01/article/details/1366648 java文件处理之压缩,分割 标签: javaexceptionimportnullbytefil ...
随机推荐
- v-charts使用总结(随时补充)
柱状图.折线图.环图的常用配置(配置连接地址https://v-charts.js.org/#/line) :data 绑定基本数据 { // 第一个参数为维度(就是横轴,例如时间),剩余为指标(就是 ...
- Python 生成requirements文件以及使用requirements.txt部署项目
生成requirements.txt 当你的项目不再你的本地时,为了方便在新环境中配置好环境变量,你的项目需要一个记录其所有依赖包以及它们版本号的文件夹requirements.txt 文件. pip ...
- 吴裕雄--天生自然 PYTHON3开发学习:JSON 数据解析
import json # Python 字典类型转换为 JSON 对象 data = { 'no' : 1, 'name' : 'Runoob', 'url' : 'http://www.runoo ...
- 蓝桥杯练习Day 2
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...
- Graylog
Graylog #Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 #Graylog 架构 - Graylog 负责接收来自各种设备和应用的日志,并为用 ...
- 数据结构与算法——认识O(NlogN)的排序(1)
归并排序 1) 整体就是一个简单递归,左边排好序.右边排好序.让其整体有序 2) 让其整体有序的过程里用了外排序方法 3) 利用master公式来求解时间复杂度 4) 归并排序的实质 时间复杂度0(N ...
- 38)PHP,获取数据库数据并在html中显示(晋级5)
还有一个加了单例模式的,在第52个. 首先是我的文件关系: 我的主php文件是index.php,我的配置文件php是BBB.php 我的数据库操作文件是 b.php 我的html文件是lo ...
- 吴裕雄--天生自然C语言开发:约瑟夫生者死者小游戏
个人在一条船上,超载,需要 人下船. 于是人们排成一队,排队的位置即为他们的编号. 报数,从 开始,数到 的人下船. 如此循环,直到船上仅剩 人为止,问都有哪些编号的人下船了呢? #include&l ...
- SG函数学习
尼姆博弈就是sg函数的简单体现 学习粗:https://blog.csdn.net/luomingjun12315/article/details/45555495 //f[N]:可改变当前状态的方式 ...
- tomcat打印接口延迟时间
项目中有些页面时延不稳定,需要看每次接口调用时延,怎么看,有两种方法:一种是直接去catalina.out日志中看,一种是直接去localhost_access_log日志中看,第一种需要在代码中实现 ...