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

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

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

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)*/

	}

}

时间: 2024-08-03 12:13:26

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

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

原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; public class ZipIt { public static void main(String args[]) throws IOException { if (args.length < 2) { System.err.println("usage: java ZipIt Zip.zip file1 file2 f

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

原文:http://snowolf.iteye.com/blog/642298 去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ZLib),一直惦记却没时间补充.今天得空,整理一下ZIP的java原生实现. 看了几篇zip压缩算法的帖子,讲的算是比较细致了,但就是没有对应的解压缩实现,太惜败了! 我就喜欢没事做总结,稍作整理,将其收纳! 相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——J

如何在java REST API中用GZip和Jersey压缩相应

有许多情景当你的REST api提供的相应是非常长的,并且我们都知道传递速度和贷款在移动设备/网络上是多重要.当开发支持REST apis的移动app的时候,我认为首要的性能最优化的点就是需要解决.猜猜是什么?因为响应式文本,因此我们能压缩这些文本.而且随着当前的只能手机和平板的能力,在客户端解压文本应该不是个大问题...因此在这篇文章中,如果你使用java的Jersey构建它,我将介绍你怎么能有选择性的压缩REST API响应,这个Jersey事JAX-RS的映射实现(还有更多)... 1.J

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

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

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

原文:http://snowolf.iteye.com/blog/642492 JavaEye的朋友跟我说:“你一口气把ZIP压缩和解压缩都写到一个帖子里,我看起来很累,不如分开好阅读”.ok,面向读者需求,我做调整,这里单说ZIP解压缩! 解压缩与压缩运作方式相反,原理大抵相同,由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInputStream设置冗余校验码,如: Java代码   CheckedInputStream cis = new Checked

支持文件的流式压缩/解压IP*Works! Zip

IP*Works! Zip是为应用程序添加压缩功能的完全可控件组件包.使用简单.速度快并且效率很高,是一个为桌面和网上应用程序添加压缩和解压缩功能的组件套包./n software IP*Works! Zip支持Zip.Tar.Gzip 和 Jar压缩标准,特别的,它支持流式压缩.加密压缩,在压缩包里就可以直接删除文件.我们目前提供完全可控的纯C# .NET组件.纯Java Beans. 产品特征: IP*Works! Zip基于纯C#代码,是完全可控的.NET组件,不依赖于任何外部代码.是完全

Java使用线程池递归压缩文件夹下面的所有子文件

本文将介绍Java中利用线程池递归的方式压缩文件夹下面的所有子文件,具体方法如下: Gzip单个文件压缩 对于单个文件使用GZip压缩. package date0805.demo1; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream

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

一.什么是gzip gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分: Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台.当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小.这取决于文件中的内容. 利用Apache中的Gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器.这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速

Linux命令(28):gzip/gunzip命令-压缩和解压

gzip/gunzip命令 功能说明 对文件进行压缩(gzip)或解压(gunzip),压缩文件预设的扩展名为".gz",gunzip就是gzip的硬链接,解压可以通过gzip -d命令实现.用法如下:   gzip [选项] 压缩 (解压缩) 的文档名 常用参数 选项 说明 -d 对压缩的文件进行解压(相当于gunzip的解压功能) -c 将结果输出的标准输出(相当于保留源文件) -r 递归式压缩指定目录以及子目录下的所有文件 -t 检查压缩文件完整性 -v 对于每个压缩和解压缩的文