Java建立Zip压缩文件的代码实例
- import java.io.*;
- import java.util.zip.*;
- class Zip {
- public static void main(String args[]) throws IOException {
- byte b[] = new byte[512];
- ZipOutputStream zout = new ZipOutputStream(System.out);
- for(int i = 0; i < args.length; i ++) {
- InputStream in = new FileInputStream(args[i]);
- ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar,'/'));
- zout.putNextEntry(e);
- int len=0;
- while((len=in.read(b)) != -1) {
- zout.write(b,0,len);
- }
- zout.closeEntry();
- print(e);
- }
- zout.close();
- }
- public static void print(ZipEntry e){
- PrintStream err = System.err;
- err.print("added " + e.getName());
- if (e.getMethod() == ZipEntry.DEFLATED) {
- long size = e.getSize();
- if (size > 0) {
- long csize = e.getCompressedSize();
- long ratio = ((size-csize)*100) / size;
- err.println(" (deflated " + ratio + "%)");
- }
- else {
- err.println(" (deflated 0%)");
- }
- }
- else {
- err.println(" (stored 0%)");
- }
- }
- }
import java.io.*;
import java.util.zip.*;
class Zip {
public static void main(String args[]) throws IOException {
byte b[] = new byte[512];
ZipOutputStream zout = new ZipOutputStream(System.out);
for(int i = 0; i < args.length; i ++) {
InputStream in = new FileInputStream(args[i]);
ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar,'/'));
zout.putNextEntry(e);
int len=0;
while((len=in.read(b)) != -1) {
zout.write(b,0,len);
}
zout.closeEntry();
print(e);
}
zout.close();
}
public static void print(ZipEntry e){
PrintStream err = System.err;
err.print("added " + e.getName());
if (e.getMethod() == ZipEntry.DEFLATED) {
long size = e.getSize();
if (size > 0) {
long csize = e.getCompressedSize();
long ratio = ((size-csize)*100) / size;
err.println(" (deflated " + ratio + "%)");
}
else {
err.println(" (deflated 0%)");
}
}
else {
err.println(" (stored 0%)");
}
}
}
压缩文件代码:
- import java.io.*;
- import java.util.zip.*;//ZipOutputStream这个流在这里
- import java.util.*;
- public class ZipOutputStreamTest
- {
- public static void main(String[] args) throws Exception
- {
- File f = new File("a.jpg");
- FileInputStream fis = new FileInputStream(f);
- BufferedInputStream bis = new BufferedInputStream(fis);
- byte[] buf = new byte[1024];
- int len;
- FileOutputStream fos = new FileOutputStream(f.getName()+".zip");
- BufferedOutputStream bos = new BufferedOutputStream(fos);
- ZipOutputStream zos = new ZipOutputStream(bos);//压缩包
- ZipEntry ze = new ZipEntry(f.getName());//这是压缩包名里的文件名
- zos.putNextEntry(ze);//写入新的 ZIP 文件条目并将流定位到条目数据的开始处
- while((len=bis.read(buf))!=-1)
- {
- zos.write(buf,0,len);
- zos.flush();
- }
- bis.close();
- zos.close();
- }
- }
import java.io.*;
import java.util.zip.*;//ZipOutputStream这个流在这里
import java.util.*;
public class ZipOutputStreamTest
{public static void main(String[] args) throws Exception{File f = new File("a.jpg");FileInputStream fis = new FileInputStream(f);BufferedInputStream bis = new BufferedInputStream(fis);byte[] buf = new byte[1024];int len;FileOutputStream fos = new FileOutputStream(f.getName()+".zip");BufferedOutputStream bos = new BufferedOutputStream(fos);ZipOutputStream zos = new ZipOutputStream(bos);//压缩包ZipEntry ze = new ZipEntry(f.getName());//这是压缩包名里的文件名zos.putNextEntry(ze);//写入新的 ZIP 文件条目并将流定位到条目数据的开始处while((len=bis.read(buf))!=-1){zos.write(buf,0,len);zos.flush();}bis.close();zos.close(); }
}
压缩文件夹代码:
- import java.io.File;
- import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.util.zip.ZipInputStream;
- import java.util.zip.ZipEntry;
- public class CompressBook {
- public CompressBook() {}
- /**//*
- * inputFileName 输入一个文件夹
- * zipFileName 输出一个压缩文件夹
- */
- public void zip(String inputFileName) throws Exception {
- String zipFileName = "c:\\test.zip"; //打包后文件名字
- System.out.println(zipFileName);
- zip(zipFileName, new File(inputFileName));
- }
- private void zip(String zipFileName, File inputFile) throws Exception {
- ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));
- zip(out, inputFile, "");
- System.out.println("zip done");
- out.close();
- }
- private void zip(ZipOutputStream out, File f, String base) throws Exception {
- if (f.isDirectory()) {
- File[] fl = f.listFiles();
- out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));
- base = base.length() == 0 ? "" : base + "/";
- for (int i = 0; i < fl.length; i++) {
- zip(out, fl[i], base + fl[i].getName());
- }
- }else {
- out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));
- FileInputStream in = new FileInputStream(f);
- int b;
- System.out.println(base);
- while ( (b = in.read()) != -1) {
- out.write(b);
- }
- in.close();
- }
- }
- public static void main(String [] temp){
- CompressBook book = new CompressBook();
- try {
- book.zip("c:\\c");//你要压缩的文件夹
- }catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
import java.io.File;
import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipEntry;
public class CompressBook {public CompressBook() {}/**//** inputFileName 输入一个文件夹* zipFileName 输出一个压缩文件夹*/public void zip(String inputFileName) throws Exception {String zipFileName = "c:\\test.zip"; //打包后文件名字System.out.println(zipFileName);zip(zipFileName, new File(inputFileName));}private void zip(String zipFileName, File inputFile) throws Exception {ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFileName));zip(out, inputFile, "");System.out.println("zip done");out.close();}private void zip(ZipOutputStream out, File f, String base) throws Exception {if (f.isDirectory()) {File[] fl = f.listFiles();out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));base = base.length() == 0 ? "" : base + "/";for (int i = 0; i < fl.length; i++) {zip(out, fl[i], base + fl[i].getName());}}else {out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));FileInputStream in = new FileInputStream(f);int b;System.out.println(base);while ( (b = in.read()) != -1) {out.write(b);}in.close();}}public static void main(String [] temp){CompressBook book = new CompressBook();try {book.zip("c:\\c");//你要压缩的文件夹}catch (Exception ex) {ex.printStackTrace();}}
}
转载于:https://blog.51cto.com/daheyuan/1140900
Java建立Zip压缩文件的代码实例相关推荐
- java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)
这2个工具类都推荐使用统一个场景的不通过写法 推荐第一种 package com.gblfy.test;import java.io.BufferedInputStream; import java. ...
- zip4j -- Java处理zip压缩文件
ZIP4J,作为解决了我的问题的终极解决方案,本来一开始在搜索引擎上就看到了它的踪迹,但因天朝的网络环境问题,zip4j的官网一直无法访问,最终使我多走了好多冤枉路,期间试过JDK的zip包,试过Ap ...
- php 建立zip压缩文件,如何使用PHP创建zip压缩文件
使用压缩文件可以节省磁盘空间:压缩文件较小,便于网络传输php 压缩文件,效率高. 本文向您介绍了如何使用PHP创建zip压缩文件,希望对大家有所帮助. PHP中有一个ZipArchive类php 压 ...
- java加密文件夹_使用java.util.zip压缩文件夹,支持加密,增加描述
导读热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.io.File; import java.io.File ...
- java实现zip压缩文件 (一)
网上查了许久,最后发现三种不错的方法: 1.jdk自带的包java.util.zip.ZipOutputStream,不足之处,文件(夹)名称带中文时, 出现乱码问题,实现代码如下: /** * ...
- ABAP 生成ZIP压缩文件的代码
DATA : IZIP TYPE REF TO CL_ABAP_ZIP , CONT TYPE XSTRING , XZIP_FILE TY ...
- java 生成zip如法打开_Java创建ZIP压缩文件的方法
本文实例讲述了Java创建ZIP压缩文件的方法.分享给大家供大家参考.具体如下: 这里注意:建议使用org.apache.tools.zip.*包下相关类,否则可能会出现中文乱码问题. /** * 压 ...
- java zip压缩文件
java 生成zip压缩文件 1.zip压缩文件 文章目录 java 生成zip压缩文件 一.引入jar包 二.工具类 1.有密码压缩 2.无密码压缩 3. 解压方法 三.示例 3.1.压缩前 3.2 ...
- PHP 4.4.7 中用 PEAR 类库操作 ZIP 压缩文件
运行 pear install Archive_Tar 命令可以安装 PEAR 的 Tar 的操作类,但是 Tar 文件是个打包归档文件,并没有压缩而使文件占用的空间减少.而运行 pear insta ...
最新文章
- jstl mysql_java – jsp jstl sql与mysql中的奇怪行为
- getresource 路径转义_java中的相对路径和绝对路径
- python识别鼠标在excel中选中的区域_[Excel技巧] 提高你工作效率的9个Excel技巧,职场新人必备...
- 瀏覽器擴展──釋放你的個性
- java中的linearnumexpr,java - Cplex中的上限和下限等于0.0(在cplex中) - 堆栈内存溢出...
- 配置绿色版的editplus
- 按键精灵修改html内容,按键精灵批量开网页点击
- 一定要记住这20种PS技术!来美化你的照片
- 二叉树的python实现
- Operator 基础原理和概念
- 新生儿小名大全:农历三月出生的女孩小名
- 什么是计算机技术作文500字,关于电脑的作文500字
- 熔断漏洞和幽灵漏洞_崩溃和幽灵:发现新的英特尔CPU漏洞
- 下载QQ空间鼠标图标方法
- 微信小程序-001-抽签功能
- linux va list,vsprintf函数以及va_list使用详解
- Hive alter column
- python用循环打出阶梯图形_Python制图你真的会吗?一文学会如何绘制漂亮的阶梯图...
- Bellhop-水平海底计算案例
- 【运筹学】企业最重要的部分-预测和决策
热门文章
- oracle内置函数 wmsys.wm_concat使用
- 点号“·”的显示 替代 ul li 的功能
- 决策树ID3与C4.5
- 在ccs中添加芯片_985博导团队重大成果,涉及隐私保护领域,已在腾讯与京东、快手的业务中应用...
- Android学习之Activity
- Python中TypeError: ‘str‘ object is not callable
- SpringBoot连接Redis服务出现Command timed out
- TraceEventsDB event(跟踪事件)总结
- r语言 fourth entry_第四篇 语言学习的自然顺序
- linux脚本 let,通过shell 脚本查看服务器的时时流量