`
imaginecup
  • 浏览: 87411 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java编程思想 IO13 源码 文件解压缩

阅读更多
package com.io;
import java.io.*;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public class GZIPcompress {

	/**
	 * 用GZIP进行简单压缩
	 * 直接将输出流封装成GZIPOutputStream或ZIPOutputStream,并将输入流封装成
	 * GZIPInputStream或ZIPInputStream即可
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		if(args.length==0){
			System.err.println("Usage: \nGZIPcompress file\n"+
					"\t Uses GZIP compress to compress "+
					"the file to test.gz");
			System.exit(1);
		}
		BufferedReader in=new BufferedReader(new FileReader(args[0]));
		//GZIPOutputStream用于将数据压缩成GZIP文件格式
		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);
		}
		in.close();
		out.close();
		System.out.println("Reading file:");
		//GZIPInputStream用于解压缩GZIP文件格式的数据
		BufferedReader in2=new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream("test.gz"))));
		String s;
		while((s=in2.readLine())!=null){
			System.out.println(s);
		}
		in.close();
	}
	

}

package com.io;
import java.io.*;
import java.util.Enumeration;
import java.util.zip.*;
public class ZipCompress {

	/**
	 *用Zip进行多文件的保存
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {
		//文件压缩
		FileOutputStream f=new FileOutputStream("test.zip");
		//public class CheckedOutputStreamextends FilterOutputStream
		//需要维护写入数据校验和的输出流。校验和可用于验证输出数据的完整性。 
		CheckedOutputStream csum=new CheckedOutputStream(f, new Adler32());
		ZipOutputStream zos=new ZipOutputStream(csum);
		BufferedOutputStream out=new BufferedOutputStream(zos);
		zos.setComment("A test of Java Zipping");//设置 ZIP 文件注释。 
		for(String arg:args){
			System.out.println("Writing file:"+arg);
			BufferedReader in=new BufferedReader(new FileReader(arg));
			//开始写入新的 ZIP 文件条目并将流定位到条目数据的开始处
			//ZipEntry是Java中进行压缩与解压缩的单位,它用来标记ZIP压缩文件中每个原始文件的入口
			ZipEntry zeItem=new ZipEntry(arg);
			System.out.println(zeItem.getCompressedSize()+"|"+zeItem.getTime()+"|"+zeItem.getSize());
			zos.putNextEntry(zeItem);
			int c;
			while((c=in.read())!=-1){
				out.write(c);
			}
			in.close();
			out.flush();
		}	
		out.close();
		System.out.println("Checksum: "+csum.getChecksum().getValue());
		//文件解压缩
		FileInputStream fi=new FileInputStream("test.zip");
		CheckedInputStream csumi=new CheckedInputStream(fi,new Adler32());
		ZipInputStream in2=new ZipInputStream(csumi);
		BufferedInputStream bis=new BufferedInputStream(in2);
		ZipEntry ze;
		while((ze=in2.getNextEntry())!=null){
			System.out.println("Reading file "+ze);
			int x;
			while((x=bis.read())!=-1){
				System.out.print((char)x);
			}
			System.out.println();
		}
		if(args.length==1){
			System.out.println("Checksum: "+csum.getChecksum().getValue());		
		}
		bis.close();
		ZipFile zf=new ZipFile("test.zip");
		Enumeration e=zf.entries();
		while(e.hasMoreElements()){
			ZipEntry ze2=(ZipEntry)e.nextElement();
			System.out.println("File :"+ze2);
		}
		
		
	}

}

 

0
1
分享到:
评论

相关推荐

    JAVA文件压缩与解压缩实践(源代码+论文)

    在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在数据传输、存储优化和备份场景中。本实践项目围绕这个主题展开,包括源代码和相关的论文,为学习者提供了深入理解和应用Java压缩库的机会。以下...

    java编程思想4th版类库

    《Java编程思想》第四版是Java开发者必备的经典书籍之一,由Bruce Eckel撰写,深入浅出地介绍了Java语言的核心概念和技术。在这个压缩包文件中,包含的主要是与本书相关的类库资源,特别是针对"mindview.net"包的,...

    Java IO流 Zip文件的压缩和解压缩

    Java IO流和Zip文件的压缩与解压缩是Java开发中常用的操作,特别是在处理大量数据或者进行文件打包传输时。在本文中,我们将深入探讨如何使用Java标准库中的API来完成这些任务。 首先,让我们理解一下Java IO流的...

    JAVA源码JAVA文件压缩与解压缩实践(源代码+论文)

    ### JAVA源码JAVA文件压缩与解压缩实践(源代码+论文) #### 文件压缩与解压缩在JAVA中的应用 文件压缩技术在计算机科学中扮演着重要的角色,它不仅可以节省存储空间,还能提高数据传输效率。在Java语言环境中实现...

    文件解压缩实现

    总结起来,文件解压缩实现涉及对zip文件格式的理解、使用Java的`java.util.zip`包以及正确处理文件流。通过`MyZip.java`这个文件,我们可以学习到如何在Java中进行文件的压缩和解压缩操作,这对于处理大量数据的项目...

    JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码.zip

    一、Java压缩文件到ZIP 在Java中,我们可以使用`java.util.zip`包中的`ZipOutputStream`类来实现文件或文件夹的压缩。以下是一个基本的文件压缩示例: ```java import java.io.*; import java.util.zip.*; public...

    Java用GZIP压缩解压文件源码

    在Java编程语言中,GZIP是一种常用的文件压缩格式,它基于DEFLATE算法,可以用于压缩和解压缩数据。在本文中,我们将深入探讨如何使用Java实现GZIP压缩和解压缩文件的源码。 首先,我们需要引入Java的`java.util....

    JAVA实现解压缩源码

    在Java编程语言中,解压缩源码涉及到对.zip或.tar.gz等压缩文件格式进行操作的技巧。本节将深入探讨如何使用Java实现解压缩功能,这对于开发者来说是至关重要的技能,尤其是在处理大量数据或者需要优化存储空间时。...

    JAVA编程思想习题及答案

    《JAVA编程思想习题及答案》是一份针对Java编程学习者的宝贵资源,它涵盖了Java语言的核心概念、设计模式以及实际编程技巧。这份资料通过习题的形式帮助学习者深入理解和掌握Java编程思想,同时提供了解答,使学习...

    JAVA编程思想中文版.zip

    《JAVA编程思想》是 Bruce Eckel 的经典著作,中文版为国内Java开发者提供了深入理解Java语言的宝贵资源。这本书全面而深入地介绍了Java编程的核心概念和技术,是学习和提升Java编程技能的重要参考资料。 本书主要...

    Java zip 压缩/解压源码

    在Java编程语言中,`zip`格式是一种常用的文件压缩方式,用于将多个文件打包成一个单一的可压缩文件。这个`Java zip 压缩/解压源码`的资源提供了一个简洁易用的API,使得开发者能够方便地对文件进行压缩和解压缩操作...

    Java极限编程_src源码源码整理

    - Java标准库:IO流、集合框架、多线程API、网络编程、XML处理等。 3. **源码分析** - 代码结构:模块化、包管理、类与接口设计。 - 设计模式:单例、工厂、观察者、装饰器、适配器、策略等23种设计模式在源码中...

    Java编程中多种IO API复制文件的性能分析.pdf

    "Java编程中多种IO API复制文件的性能分析" Java编程中提供了多种编程接口进行流、文件、网络的操作。其中,IO API是Java中的一种基本编程接口,用于进行文件、网络、流等操作的输入输出。Java中的IO API可以分为两...

    java 使用IO流实现文件的复制

    在Java编程语言中,文件复制是一项常见的操作,可以用于备份数据、迁移文件或者在程序中处理数据。IO(Input/Output)流是Java提供的一种处理输入输出数据的方式,包括读取和写入文件。本篇文章将详细介绍如何使用...

    Java文件解压缩使用maven

    本文将详细介绍如何在Java项目中使用Maven来处理文件的解压缩。 首先,我们需要在Maven项目的`pom.xml`文件中添加Apache Commons Compress库作为依赖。Apache Commons Compress库提供了多种压缩和解压缩格式的支持...

    使用Java API进行tar.gz文件及文件夹压缩解压缩.docx

    ame()); tOut.putArchiveEntry(tarEntry);...通过引入该库,我们可以轻松地在 Java 程序中实现文件和文件夹的压缩与解压缩功能。在实际开发中,注意错误处理、资源管理以及安全性等方面,以确保程序的健壮性和安全性。

    java源码:文件压缩解压缩包 Commons Compress.rar

    Java 源码:文件压缩解压缩包 Commons Compress 是一个强大的开源库,它提供了对多种文件压缩格式的支持。这个库是由 Apache 软件基金会开发的,是 Java 平台上处理压缩和归档文件的标准工具之一。在 Java 开发中,...

    JAVA源码Java二进制IO类与文件复制操作实例

    JAVA源码Java二进制IO类与文件复制操作实例

Global site tag (gtag.js) - Google Analytics