java压缩 GZIP进行简单压缩,ZIP进行多文件保存
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进行多文件保存的更多相关文章
- 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件
原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; public class Zip ...
- Java压缩技术(二) ZIP压缩——Java原生实现
原文:http://snowolf.iteye.com/blog/642298 去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ZLib),一直惦记却没时间补充.今天得空,整理一下ZI ...
- java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 使用过程 和servlet差不多
java nio 写一个完整的http服务器 支持文件上传 chunk传输 gzip 压缩 也仿照着 netty处理了NIO的空轮询BUG 本项目并不复杂 代码不多 ...
- [拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 介绍压缩和打包 gzip bzip2 zip 的基本使用 gz ...
- Linux学习之CentOS(十九)------linux 下压缩与解压之 tar、gzip、bzip2、zip、rar
将文件存储到归档文件中或者从归档文件中获取原始文件,以及为文件创建归档文件 tar [option] [modifiers] [file-list] 参数 file-list是tar进行归档和提取的文 ...
- java zip压缩优化版 解决压缩后文件一直被占用无法删除
最近进行zip操作,从网上找到一个处理方法,但是经过试验存在一些bug,主要是文件流的申明存在问题,导致jvm一直占用文件而不释放,特意把自己修改的发出来,已备记录 import java.io.Bu ...
- Java压缩技术(三) ZIP解压缩——Java原生实现
原文:http://snowolf.iteye.com/blog/642492 JavaEye的朋友跟我说:“你一口气把ZIP压缩和解压缩都写到一个帖子里,我看起来很累,不如分开好阅读”.ok,面向读 ...
- JAVA调用外部安装7-Zip压缩和解压zip文件
1.首先在本地安装7-Zip(下载链接:https://www.7-zip.org/)2.调用7-Zip压缩.zip文件: /** * 生成.zip压缩文件 * @param fi ...
- Web服务器处理HTTP压缩之gzip、deflate压缩
现如今在处理http请求的时候,由于请求的资源较多,如果不启用压缩的话,那么页面请求的流量将会非常大.启用gzip压缩,在一定程度上会大大的提高页面性能. 目录 一.什么是gzip 二.什么是de ...
随机推荐
- Ubuntu系统进程管理笔记
前言 今天对前端服务器进行迁移,本来前端服务器就一台,都是放置前端静态文件的地方,应该是比较简单的.唯一的问题是由于Nginx需要给ie8浏览器个i同https访问支持,不得不对Nginx进行重新编译 ...
- [ Python - 5 ] 通过random模块生成随机字符串
import random checkcode = '' for i in range(4): if i == random.randint(0,3): current = chr(random.ra ...
- 【C++】const、volatile不能修饰没有this指针的成员函数
一般所有的成员函数都只有一个复本,当不同的对象调用成员函数时,为了区分是哪个成员在调用,会传入this指针. 当调用有const.volatile修饰的成员函数时,会相应的传入一个const.vola ...
- selenium 滚动条操作(JavaScript操作)
前言 一般我们想到的必须使用滚动条的场景是:注册时的法律条文的阅读.判断用户是否阅读完的标准是:滚动条是否拉到页面底部.当然,有时候为使操作更接近用户行为也会使用滚动条,例如用户要操作的元素在页面的第 ...
- 如何在windows平台下使用hsdis与jitwatch查看JIT后的汇编码
1. 安装hsids 这一步比较麻烦,需要提前安装cygwin,以及下载openjdk的源码 具体步骤请参考下面的两篇文章 How to build hsdis-amd64.dll and hsdis ...
- 安装tomcat7.0.82
下载安装tomcat mkdir /tools cd /tools wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.82/bin/ap ...
- STL心得
熟悉c++版算法竞赛程序框架 理解变量引用的原理 熟练掌握string和stringstream 熟练掌握c++结构体的定义和使用,包括构造函数和静态成员变量 了解常见的可重载运算符,包括四则运算,赋 ...
- 洛谷——P1689 方程求解
P1689 方程求解 题目描述 给一个方程,形如X+Y=Z或X-Y=Z.给出了其中两个未知数,请求出第三个数.未知数用‘?’表示,等式中也许会出现一些多余的空格. 输入输出格式 输入格式: 一行,方程 ...
- RabbitMQ (七) 订阅者模式之主题模式 ( topic )
主题模式和路由模式很像 路由模式是精确匹配 主题模式是模糊匹配 依然先通过管理后台添加一个交换机. 生产者 public class Producer { private const string E ...
- (转) C#解惑:HashSet<T>类
HashSet<T>是一个相对“冷门”的类型,平时在项目中用得不多,但是在特定的业务中可以大用. 先来了解下HashSet<T>类,主要被设计用来存储集合,做高性能集运算,例如 ...