1、文件压缩需要利用ZipOutputStream类对象,可将文件压缩为.zip文件。ZipOutputStream类的构造方法如下:ZipOutputStream(outputStream out);

2、ZipOutputStream类的常用方法如表所示。

方法 返回值 说明
putNextEntry(zipEntry e) void

开始写一个新的ZipEntry,并将流内的位置移至entry所指数据的开头。

write(byte[] b,int off,int len) void 将字节数写入当前ZIP条目数。
finish() void 完成写入ZIP输入流的内容,无须关闭它所配合的OutputStream。
setComment(String comment) void 可设置此ZIP文件的注释文字。

3、下面的实例为压缩E盘的hello文件夹,在该文件夹中有hello1.txt和hello2.txt文件,并将压缩后的hello.zip保存在E盘根目录下。

package file;import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class MyZip {private void zip(String zipFileName, File inputFile) throws IOException {ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));//创建ZipoutputStream类对象zip(out,inputFile,"");//调用方法System.out.println("压缩中...");out.close();//关闭流}private void zip(ZipOutputStream out,File file,String base) throws IOException {//方法重载if (file.isDirectory()){//判断此路径是否是一个目录File[] files = file.listFiles();//获取路径数组if (base.length()!=0){out.putNextEntry(new ZipEntry(base+"/"));//写入此目录的entry}for (int i = 0; i < files.length; i++) {//循环遍历数组中的文件zip(out,files[i],base+files[i]);}}else {out.putNextEntry(new ZipEntry(base));//创建新的进入点//创建FileInputStream对象FileInputStream in = new FileInputStream(file);int b;System.out.println(base);while ((b=in.read())!=-1){//如果没有达到流的尾部out.write(b);//将字节写入当前ZIP条目}in.close();//关闭流}}public static void main(String[] args) {MyZip book = new MyZip();//创建本例对象try {//调用方法,参数为压缩后的文件与要压缩的文件book.zip("E:/hello.zip",new File("E:\\hello"));System.out.println("压缩完成!!!");} catch (IOException e) {e.printStackTrace();}}
}

运行程序,可从控制台的变化看出,每一个ZIP文件中可能包含多个文件。使用ZipOutputStream类将文件写入目标时,必须先使用ZipOutputStream对象的putNextEntry()方法,写入个别文件的entry,将流内目前指到的位置移到该entry所指的开头位置。

java代码压缩文件相关推荐

  1. zipentry压缩乱码linux,java生成压缩文件 ZipEntry出现乱码的有关问题

    java生成压缩文件 ZipEntry出现乱码的问题 在项目中,一次导出的文件有好几个,而且文件内容比较大,最后考虑到把文件进行压缩在下载,开始试用JDK自带的ZIP压缩包时,ZipEntry ze ...

  2. java实现压缩文件预览

    java实现压缩文件预览 可能感觉会比较low,没有使用插件,只是简单的显示压缩文件的目录结构,其实前台可以使用树形进行层级展示,有需要的兄台可以在这个基础上加上,基础代码如下: /*文件预览 */ ...

  3. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

  4. java文件复制速度_【Java】Java代码拷贝文件的速度

    Java代码拷贝文件的速度究竟有多快? 前言 最近学习Java到了流处理,其中有种流叫FileInputStream和FileOutputStream,简单来说,就是操作文件的,老师给我们示范了一个非 ...

  5. 记录一下 Java 代码实现文件夹、文件的对比,主要包含 word、pdf、文本、图片等相关文件的对比计算,以及计算文本的相似率(重复率)、筛选出差异的文件、方便文件和文档的去重,并封装为jar包

    记录一下 Java 代码实现文件夹.文件的对比,主要包含 word.pdf.文本.图片等相关文件的对比计算,以及计算文本的相似率(重复率).筛选出差异的文件.方便文件和文档的去重,并把所有的源码封装为 ...

  6. 2021-02-08【Web作业开发记录】Java代码读取文件问题

    [Web作业开发记录]Java代码读取文件问题 1.问题分析 在项目中需要读取properties文件,而对于gradle项目,在java文件夹底下的properties文件在编译打包时会自动忽略,最 ...

  7. Win10搭建FTP服务器+java代码实现文件上传至FTP服务器

    Win10搭建ftp服务器 打开控制面板 -> 程序和功能,点击启用或关闭Windows功能,勾选红色方框内的选项 控制面板 -> 管理工具,如下打开IIS管理器 先在本地磁盘中创建一个目 ...

  8. java gz压缩文件解压

    java gz压缩文件解压 gzFileName压缩文件全路径 targetFileName解压后的文件全路径 public boolean unGzFile(String gzFileName,St ...

  9. java代码删除文件__发现无法删除

    java代码删除文件__发现无法删除 File file = new File(filePath);if (file.exists() && file.isFile()) {boole ...

  10. java zip压缩文件

    java 生成zip压缩文件 1.zip压缩文件 文章目录 java 生成zip压缩文件 一.引入jar包 二.工具类 1.有密码压缩 2.无密码压缩 3. 解压方法 三.示例 3.1.压缩前 3.2 ...

最新文章

  1. 如何在离开页面时弹出确认对话框
  2. 共享可写节包含重定位_艾瑞咨询:2020年数说双11电商购物节报告
  3. flutter 如何自定义一个loadmore / 加载更多
  4. CentOS5.4下安装和配置Apache、PHP、MySql、PHPMyAdmin
  5. vue.js 组件之间传递数据
  6. python封装类在当前文件中使用_name_下调用不了_python提示这个是什么原因!
  7. 车载wince系统刷界面ui_2020年值得关注的10个UI设计趋势!
  8. SAP CRM WebClient UI端到端的字段扩展
  9. linux cp 强制yes,linux cp实现强制覆盖
  10. BaseYii_autoload
  11. 【CodeForces - 485C】Bits (二进制相关,数学,贪心)
  12. python 双向循环链表实现_python实现双向循环链表基本结构及其基本方法
  13. [转]Linux下VSCode常用的快捷键
  14. Gstreamer官方教程汇总2---GStreamer concepts
  15. Stardock Fences v3.1.0.5 桌面整理、图标分类工具
  16. 数据分析师,如何向亲友解释自己的工作
  17. SLIC Superpixels 算法学习笔记
  18. 飞机游戏中子弹与飞机的移动与边界源码
  19. Android沉浸式状态栏工具类,一句代码轻松搞定
  20. 【安装Linux系统】

热门文章

  1. 异地电脑如何共享文件?
  2. lisp 非对称缓和曲线_GIS环境下缓和曲线绘制方法研究
  3. 请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用“6.2f“格式输出。
  4. 领你走进10位管理大师的思想境界
  5. 基于微信网页版二维码扫码支付
  6. 软件调试方法及调试原则
  7. 运动目标检测的四种方法
  8. CSS Sprite、CSS雪碧图应用实例
  9. 哪一类功率放大电路效率最高_让我们来复习一下功率放大电路与集成运算放大电路...
  10. hash算法概念和hash加盐法