WEB开发网
开发学院手机开发Android 开发 Android 利用Java实现压缩与解压缩(zip、gzip)支... 阅读

Android 利用Java实现压缩与解压缩(zip、gzip)支持中文路径

 2010-11-05 00:54:57 来源:WEB开发网   
核心提示:zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是对单个文件进行压缩,Android 利用Java实现压缩与解压缩(zip、gzip)支持中文路径,所以,在UNIX平台上,压缩类的用法非常简单;只要用GZIPOutputStream 或ZipOutputStream把输出流包起来,再用GZIPInputSt

zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。

Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了。这些类不是Reader和Writer,而是InputStream和OutStreamput的子类。这是因为压缩算法是针对byte而不是字符的。

相关类与接口:

Checksum 接口:被类Adler32和CRC32实现的接口

Adler32 :使用Alder32算法来计算Checksum数目

CRC32 :使用CRC32算法来计算Checksum数目

CheckedInputStream :InputStream派生类,可得到输入流的校验和Checksum,用于校验数据的完整性

CheckedOutputStream :OutputStream派生类,可得到输出流的校验和Checksum, 用于校验数据的完整性

DeflaterOutputStream :压缩类的基类。

ZipOutputStream :DeflaterOutputStream的一个子类,把数据压缩成Zip文件格式。

GZIPOutputStream :DeflaterOutputStream的一个子类,把数据压缩成GZip文件格式

InflaterInputStream :解压缩类的基类

ZipInputStream :InflaterInputStream的一个子类,能解压缩Zip格式的数据

GZIPInputStream :InflaterInputStream的一个子类,能解压缩Zip格式的数据

ZipEntry 类:表示 ZIP 文件条目

ZipFile 类:此类用于从 ZIP 文件读取条目

用GZIP进行对单个文件压缩

GZIP的接口比较简单,因此如果你只需对一个流进行压缩的话,可以使用它。当然它可以压缩字符流,与可以压缩字节流,下面是一个对GBK编码格式的文本文件进行压缩的。

压缩类的用法非常简单;只要用GZIPOutputStream 或ZipOutputStream把输出流包起来,再用GZIPInputStream 或ZipInputStream把输入流包起来就行了。剩下的都是些普通的I/O操作。

Java代码

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.zip.GZIPInputStream;

1 2 3 4 5 6  下一页

Tags:Android 利用 Java

编辑录入:coldstar [复制链接] [打 印]
赞助商链接