其实最好的书籍就是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的更多相关文章

  1. java文件压缩和解压

    功能实现. package com.test; import java.io.File; import java.io.BufferedOutputStream; import java.io.Buf ...

  2. 文件压缩 ZipOutputStream类

    先举一个压缩单个文件的例子吧: [例子1] import java.io.File; import java.io.FileInputStream; import java.io.FileOutput ...

  3. java文件压缩与解压

    感谢“zlex.dongliang@gmail.com”.主要代码如下: import java.io.BufferedInputStream; import java.io.File; import ...

  4. java 文件压缩和解压(ZipInputStream, ZipOutputStream)

    最近在看java se 的IO 部分 , 看到 java 的文件的压缩和解压比较有意思,主要用到了两个IO流-ZipInputStream, ZipOutputStream,不仅可以对文件进行压缩,还 ...

  5. Java文件压缩优化工具(ProGuard) 软件介绍 Soft content

    ProGuard是一款免费的Java类文件的压缩.优化.混肴器.它可以帮你删除没用的类,字段,方法与属性,使字节码最大程度地优化,使用简短且无意义的名字来重命名类.字段和方法 .目前eclipse已经 ...

  6. Java文件压缩分割(待)

    http://blog.csdn.net/ycg01/article/details/1366648

  7. Java实现文件压缩与解压

    Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例.(转载自http://www.puiedu. ...

  8. Java实现文件压缩与解压[zip格式,gzip格式]

    Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并 ...

  9. java文件处理之压缩,分割

    http://blog.csdn.net/ycg01/article/details/1366648 java文件处理之压缩,分割 标签: javaexceptionimportnullbytefil ...

随机推荐

  1. 寒假day01-Spring框架

    1.什么是Spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE D ...

  2. http协议笔记(不全)

    1.URL 统一资源定位系统 URL由三部分组成:资源类型.存放资源的主机域名.资源文件名.url是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址 ...

  3. windows通过Winscp传输文件给Vbox虚拟机

    1.VirtualBox->设置->网络->高级->端口转发->Rule 1 TCP 127.0.0.1 22 10.0.2.15(在CentOS中通过ip addr命令 ...

  4. python-day3爬虫基础之下载网页

    今天主要学习了关于网页下载器的一些内容,下边做一下总结: 1.网页下载器,顾名思义,就是将URL所对应的网页以HTML的形式下载到本地,最终存储成本地文件或者还是本地内存字符串,然后进行后续的分析与处 ...

  5. Python学习中的随笔,好记性不如烂笔头

    本文 为博主看了 vamei 的blog 写下的随笔 . 致敬Vamei 1.type()   可以显示参数的类型 如 : a=12   type(a) 为 int 2.python的基本类型 为 i ...

  6. LeetCode——376.摆动序列

    如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...

  7. 黑马eesy_15 Vue:03.生命周期与ajax异步请求

    黑马eesy_15 Vue:02.常用语法 黑马eesy_15 Vue:03.生命周期 黑马eesy_15 Vue:04.Vue案例(ssm环境搭建) vue的生命周期与ajax异步请求 1.Vue的 ...

  8. Oscar的拓扑笔记本

    目录 Euler characteristic Euler定理 引入:绝对值 度量空间 Example: 开集,闭集 Topological space 什么是拓扑 拓扑空间 例子: Exercise ...

  9. Oracle数据库添加删除主外键

    (一)添加主键 1.表创建的同时,添加主键约束 语法: create table "表名" ( "列名1" 数据类型及长度 constraint "主 ...

  10. eclipse利用sql语句对Oracle数据库进行操作

    对Oracle数据库执行操作的sql语句中表名和列名都需用英文双引号("")括起来. 注(\为转义符) 1.插入数据 sql = "insert into \" ...