java压缩  GZIP进行简单压缩,ZIP进行多文件保存

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

package org.rui.io.compress;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
/**
* 用GZIP进行简单压缩
* @author lenovo
*
*/
public class GZIPcompress {
static String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\compress\\";
static String [] arg=new String[]{path+"GZIPcompress.java"};
public static void main(String[] args) throws Exception {
//in
BufferedReader in=new BufferedReader(new FileReader(arg[0]));
//out
BufferedOutputStream out=new BufferedOutputStream(new GZIPOutputStream(
new FileOutputStream("test.gz")
));
System.out.println("writing file");
int c;
while((c=in.read())!=-1)
{
out.write(c);
}
//close
in.close();
out.close();
System.out.println("reading file================");
BufferedReader br=new BufferedReader(
new InputStreamReader(
new GZIPInputStream(
new FileInputStream("test.gz")
)
)
); String s;
while((s=br.readLine())!=null)
System.out.println(s);
} }

package org.rui.io.compress;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.util.Enumeration;
import java.util.zip.Adler32;
import java.util.zip.CheckedInputStream;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream; /**
* 用Zip进行多文件保存
* @author lenovo
*
*/
public class ZipCompress {
//static String path="D:\\Users\\liangrui\\workspace\\thinking\\src\\org\\rui\\io\\compress\\";
static String path=new File("").getAbsolutePath()+"\\src\\org\\rui\\io\\compress\\";
static String [] arg=new String[]{path+"GZIPcompress.java",path+"ZipCompress.java"}; public static void main(String[] args) throws Exception {
//out
FileOutputStream f=new FileOutputStream("test.zip");
CheckedOutputStream cos=new CheckedOutputStream(f,new Adler32());
ZipOutputStream zos=new ZipOutputStream(cos);
//out
BufferedOutputStream out=new BufferedOutputStream(zos);
zos.setComment("A test of java zipping"); for(String s:arg)
{
System.out.println("writing file "+s);
BufferedReader in =new BufferedReader(new FileReader(s));
//
zos.putNextEntry(new ZipEntry(s));
int c;
while((c=in.read())!=-1){
out.write(c);
}
in.close();
out.flush();
} out.close();
//checksum valid only after the file has been closed!
System.out.println("reading file================");
FileInputStream fi=new FileInputStream("test.zip");
CheckedInputStream csumi=new CheckedInputStream(fi,new Adler32());
ZipInputStream zis=new ZipInputStream(csumi);
BufferedInputStream bis=new BufferedInputStream(zis);
ZipEntry ze;
while((ze=zis.getNextEntry())!=null)
{
System.out.println("Reading file "+ze);
int x;
while((x=bis.read())!=-1)
{
//System.out.print((char)x);
System.out.write(x);
}
} //
if(arg.length==1)
System.out.println("checksum:"+csumi.getChecksum().getValue());
bis.close();
//alternative way to open and read zip files
ZipFile zf=new ZipFile("test.zip"); Enumeration e=zf.entries();
while(e.hasMoreElements())
{
ZipEntry ze2=(ZipEntry) e.nextElement();
System.out.println("file:"+ze2);
//...and extract the data as before
}
/*if(arg.length==1)*/ } }

java压缩 GZIP进行简单压缩,ZIP进行多文件保存的更多相关文章

  1. 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件

    原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; public class Zip ...

  2. Java压缩技术(二) ZIP压缩——Java原生实现

    原文:http://snowolf.iteye.com/blog/642298 去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ZLib),一直惦记却没时间补充.今天得空,整理一下ZI ...

  3. java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多

    java nio 写一个完整的http服务器  支持文件上传   chunk传输    gzip 压缩      也仿照着 netty处理了NIO的空轮询BUG        本项目并不复杂 代码不多 ...

  4. [拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/    索引: 介绍压缩和打包 gzip bzip2 zip 的基本使用 gz ...

  5. Linux学习之CentOS(十九)------linux 下压缩与解压之 tar、gzip、bzip2、zip、rar

    将文件存储到归档文件中或者从归档文件中获取原始文件,以及为文件创建归档文件 tar [option] [modifiers] [file-list] 参数 file-list是tar进行归档和提取的文 ...

  6. java zip压缩优化版 解决压缩后文件一直被占用无法删除

    最近进行zip操作,从网上找到一个处理方法,但是经过试验存在一些bug,主要是文件流的申明存在问题,导致jvm一直占用文件而不释放,特意把自己修改的发出来,已备记录 import java.io.Bu ...

  7. Java压缩技术(三) ZIP解压缩——Java原生实现

    原文:http://snowolf.iteye.com/blog/642492 JavaEye的朋友跟我说:“你一口气把ZIP压缩和解压缩都写到一个帖子里,我看起来很累,不如分开好阅读”.ok,面向读 ...

  8. JAVA调用外部安装7-Zip压缩和解压zip文件

    1.首先在本地安装7-Zip(下载链接:https://www.7-zip.org/)2.调用7-Zip压缩.zip文件: /**      * 生成.zip压缩文件      * @param fi ...

  9. Web服务器处理HTTP压缩之gzip、deflate压缩

    现如今在处理http请求的时候,由于请求的资源较多,如果不启用压缩的话,那么页面请求的流量将会非常大.启用gzip压缩,在一定程度上会大大的提高页面性能.   目录 一.什么是gzip 二.什么是de ...

随机推荐

  1. 【 浅谈Linux路由机制 】

    以下均为个人实验验证结果,如有问题,恳请指正. 现在服务器一般都有四张网卡,给了我们更多网络模型的选择.为了业务的需求,有时我们需要如下网络架构 系统:centos 7.2 x64 两张网卡不在同一个 ...

  2. 输入法出现 footer被挤上去的问题

    /** * 修改点击input输入框时的位置 *input框获取焦点footer隐藏,失去焦点时显示 */ $('.input-footer-none').on('focus',function(){ ...

  3. 《Java编程思想》笔记 第二十章 注解

    1.注解 注解也称元数据,是在代码中添加信息的一种方式添加的信息提供给编译器或者工具类框架使用. SE5引入,可以提供用来完整描述程序所需要的信息,往往这些信息是无法用Java来表达的. 注解可以在编 ...

  4. Selenium2+python自动化52-unittest执行顺序【转载】

    前言 很多初学者在使用unittest框架时候,不清楚用例的执行顺序到底是怎样的.对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行. 本篇通过最简单案例详细讲解unittest执行顺 ...

  5. Juel Getting Started

    Getting Started The JUEL distribution contains the following JAR files: juel-api-2.2.x.jar - contain ...

  6. poj 1066(枚举+线段相交)

    Treasure Hunt Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 6328   Accepted: 2627 Des ...

  7. 第八届省赛 B:Quadrat (打表找规律)

    Description It is well-known that for any n there are exactly four n-digit numbers (including ones w ...

  8. HDU 1532.Drainage Ditches-网络流最大流

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. (2)Flutter vscode安装

    1. vscode搜索Flutter 点击安装Flutter会自动安装Flutter和Dart 2.打开项目 在vscode File-openFolder打开之前创建的项目 成功显示 如果创建一个新 ...

  10. HDU 2568 前进(模拟,水)

      轻松通过墓碑,进入古墓后,才发现里面别有洞天.突然,Yifenfei发现自己周围是黑压压的一群蝙蝠,个个扇动翅膀正准备一起向他发起进攻!形势十分危急!好在此时的yifenfei已经不是以前那个经常 ...