java代码压缩文件
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代码压缩文件相关推荐
- zipentry压缩乱码linux,java生成压缩文件 ZipEntry出现乱码的有关问题
java生成压缩文件 ZipEntry出现乱码的问题 在项目中,一次导出的文件有好几个,而且文件内容比较大,最后考虑到把文件进行压缩在下载,开始试用JDK自带的ZIP压缩包时,ZipEntry ze ...
- java实现压缩文件预览
java实现压缩文件预览 可能感觉会比较low,没有使用插件,只是简单的显示压缩文件的目录结构,其实前台可以使用树形进行层级展示,有需要的兄台可以在这个基础上加上,基础代码如下: /*文件预览 */ ...
- java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...
标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...
- java文件复制速度_【Java】Java代码拷贝文件的速度
Java代码拷贝文件的速度究竟有多快? 前言 最近学习Java到了流处理,其中有种流叫FileInputStream和FileOutputStream,简单来说,就是操作文件的,老师给我们示范了一个非 ...
- 记录一下 Java 代码实现文件夹、文件的对比,主要包含 word、pdf、文本、图片等相关文件的对比计算,以及计算文本的相似率(重复率)、筛选出差异的文件、方便文件和文档的去重,并封装为jar包
记录一下 Java 代码实现文件夹.文件的对比,主要包含 word.pdf.文本.图片等相关文件的对比计算,以及计算文本的相似率(重复率).筛选出差异的文件.方便文件和文档的去重,并把所有的源码封装为 ...
- 2021-02-08【Web作业开发记录】Java代码读取文件问题
[Web作业开发记录]Java代码读取文件问题 1.问题分析 在项目中需要读取properties文件,而对于gradle项目,在java文件夹底下的properties文件在编译打包时会自动忽略,最 ...
- Win10搭建FTP服务器+java代码实现文件上传至FTP服务器
Win10搭建ftp服务器 打开控制面板 -> 程序和功能,点击启用或关闭Windows功能,勾选红色方框内的选项 控制面板 -> 管理工具,如下打开IIS管理器 先在本地磁盘中创建一个目 ...
- java gz压缩文件解压
java gz压缩文件解压 gzFileName压缩文件全路径 targetFileName解压后的文件全路径 public boolean unGzFile(String gzFileName,St ...
- java代码删除文件__发现无法删除
java代码删除文件__发现无法删除 File file = new File(filePath);if (file.exists() && file.isFile()) {boole ...
- java zip压缩文件
java 生成zip压缩文件 1.zip压缩文件 文章目录 java 生成zip压缩文件 一.引入jar包 二.工具类 1.有密码压缩 2.无密码压缩 3. 解压方法 三.示例 3.1.压缩前 3.2 ...
最新文章
- 如何在离开页面时弹出确认对话框
- 共享可写节包含重定位_艾瑞咨询:2020年数说双11电商购物节报告
- flutter 如何自定义一个loadmore / 加载更多
- CentOS5.4下安装和配置Apache、PHP、MySql、PHPMyAdmin
- vue.js 组件之间传递数据
- python封装类在当前文件中使用_name_下调用不了_python提示这个是什么原因!
- 车载wince系统刷界面ui_2020年值得关注的10个UI设计趋势!
- SAP CRM WebClient UI端到端的字段扩展
- linux cp 强制yes,linux cp实现强制覆盖
- BaseYii_autoload
- 【CodeForces - 485C】Bits (二进制相关,数学,贪心)
- python 双向循环链表实现_python实现双向循环链表基本结构及其基本方法
- [转]Linux下VSCode常用的快捷键
- Gstreamer官方教程汇总2---GStreamer concepts
- Stardock Fences v3.1.0.5 桌面整理、图标分类工具
- 数据分析师,如何向亲友解释自己的工作
- SLIC Superpixels 算法学习笔记
- 飞机游戏中子弹与飞机的移动与边界源码
- Android沉浸式状态栏工具类,一句代码轻松搞定
- 【安装Linux系统】
热门文章
- 异地电脑如何共享文件?
- lisp 非对称缓和曲线_GIS环境下缓和曲线绘制方法研究
- 请设计输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用“6.2f“格式输出。
- 领你走进10位管理大师的思想境界
- 基于微信网页版二维码扫码支付
- 软件调试方法及调试原则
- 运动目标检测的四种方法
- CSS Sprite、CSS雪碧图应用实例
- 哪一类功率放大电路效率最高_让我们来复习一下功率放大电路与集成运算放大电路...
- hash算法概念和hash加盐法