其实最好的书籍就是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. UML-如何画常用UML交互图?

    1.生命线框图(参与者) 2.消息表达式

  2. 常见的nosql数据库有哪些?以及他们的特点与区别?

    一.常见的nosql 二.Redis,Memcache,MongoDb的特点 (1).Redis 优点: 1.支持多种数据结构,如 string(字符串). list(双向链表).dict(hash表 ...

  3. Kali 安装 Google 中文输入法

    前言 安装了 Linux 并设置中文后,为了操作起来更便捷准备安装一个中文输入法 之前安装搜狗输入法,由于搜狗输入法基于 qt4,估计短期是 GG 了 所以这次选择了 Google 输入法 以下是安装 ...

  4. Fabric不支持对同一个数据的并发事务处理

    Fabric不支持对同一个数据的并发事务处理,也就是说, 如果我们同时运行了invoke(一),invoke(二),那么只会第一条Transaction成功, 而第二条失败.因为在Committer节 ...

  5. 吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习

    import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...

  6. GIS开源库OpenSceneGraph(OSG)、OSGEarth、GDAL、Qt、CGAL、Boost

    GIS开源有这些库:OpenSceneGraph(OSG).OSGEarth.GDAL.Qt.CGAL.Boost

  7. poj-3259 Wormholes(无向、负权、最短路之负环判断)

    http://poj.org/problem?id=3259 Description While exploring his many farms, Farmer John has discovere ...

  8. JDK5.0 Annotation学习笔记(一)

    背景知识:         从JDK5开始提供名为Annotation(注释)的功能,它被定义为JSR-175规范.注释是以"@注释名"在代码中存在的,还可以添加一些参数值,例如: ...

  9. android基于MVP小说网络爬虫、宝贝社区APP、仿虎扑钉钉应用、滑动阴影效果等源码

    Android精选源码 android宝贝社区app源码 android仿Tinder最漂亮的一个滑动效果 android仿滴滴打车开具发票页,ListView粘性Header Android基于MV ...

  10. 吴裕雄--天生自然python学习笔记:pandas模块导入数据

    有时候,手工生成 Pandas 的 DataFrame 数据是件非常麻烦的事情,所以我们通 常会先把数据保存在 Excel 或数据库中,然后再把数据导入 Pandas . 另 一种情况是抓 取网页中成 ...