zoukankan      html  css  js  c++  java
  • java压缩 GZIP进行简单压缩,ZIP进行多文件保存

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


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












  • 相关阅读:
    可爱精灵宝贝 DP/爆搜
    那些年留的坑
    吃某种零食ing
    NOIP模拟测试13
    NOIP模拟测试12
    NOIP模拟测试11
    大佬 (数学)
    BZOJ3331 BZOJ2013 压力
    LOJ2586 APIO2018 选圆圈
    BZOJ3398 牡牛和牝牛
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6747679.html
Copyright © 2011-2022 走看看