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. css左右箭头

    .record-left{ content: ""; width: 0; height: 0; float: left; border-top: 10px solid transp ...

  2. 网站js埋点

    js埋点 1.埋点作用:  页面埋点的作用:其实就是用于流量分析.而流量的意思,包含了很多:页面浏览数(PV).独立访问者数量(UV).IP.页面停留时间.页面操作时间.页面访问次数.按钮点击次数.文 ...

  3. Centos7源码编译安装tengine1.5.1

    安装依赖包 yum install pcre pcre-devel openssl openssl-devel gcc make zlib-devel wget -y 下载和创建用户 mkdir /t ...

  4. (2)创建发布Maven

    一.创建maven项目 (1)命令行 mvn archetype:generate (2)选择模板默认是7 (3)输入组织号.项目名称及版本号.包名 回车确认 创建成功 二.转成idea项目 进入跟目 ...

  5. luogu P1938找工就业

    一头牛在一个城市最多只能赚D元,然后它必须到另一个城市工作.当然它可以在别处工作一阵子后,又回到原来的城市再最多赚D美元.而且这样的往返次数没有限制城市间有P条单向路径,共有C座城市,编号1~C,奶牛 ...

  6. WebApi 的三种寄宿方式 (二) - 宿主和控制器不在一个程序集

    新建一个类库: SelfHost: 方法一: 1.添加对MyControllers类库的引用. 2.在控制台代码中加入一行代码: 当然,可以添加多个程序集.(记得引用) var config = ne ...

  7. MongoError: topology was destroyed解决方法

    MongoError: topology was destroyed 分析得出,出现这个问题是因为,当mongodb尝试写入某个数据的时候,连接被中断了! 解决方法:检查代码中是否存在操作数据的过程中 ...

  8. websocket、文件上传

    支持情况: 浏览器实现了websocket的浏览器:Chrome Supported in version 4+ Firefox Supported in version 4+ Internet Ex ...

  9. Xamarin XAML语言教程构建ControlTemplate控件模板 (三)

    Xamarin XAML语言教程构建ControlTemplate控件模板 (三) (3)打开MainPage.xaml.cs文件,编写代码,实现主题的切换功能.代码如下: using System; ...

  10. 【二分答案】Codeforces Round #402 (Div. 2) D. String Game

    二分要删除几个,然后暴力判定. #include<cstdio> #include<cstring> using namespace std; int a[200010],n, ...