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

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

 2010-11-05 00:54:57 来源:WEB开发网   
核心提示:System.out.println("开始读压缩文件");FileInputStream fi = new FileInputStream(archive);CheckedInputStream csumi = new CheckedInputStream(fi, new CRC32());Zip

System.out.println("开始读压缩文件");

FileInputStream fi = new FileInputStream(archive);

CheckedInputStream csumi = new CheckedInputStream(fi, new CRC32());

ZipInputStream in2 = new ZipInputStream(csumi);

bi = new BufferedInputStream(in2);

java.util.zip.ZipEntry ze;//压缩文件条目

//遍历压缩包中的文件条目

while ((ze = in2.getNextEntry()) != null) {

String entryName = ze.getName();

if (ze.isDirectory()) {

System.out.println("正在创建解压目录 - " + entryName);

File decompressDirFile = new File(decompressDir + "/" + entryName);

if (!decompressDirFile.exists()) {

decompressDirFile.mkdirs();

}

} else {

System.out.println("正在创建解压文件 - " + entryName);

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(

decompressDir + "/" + entryName));

byte[] buffer = new byte[1024];

int readCount = bi.read(buffer);

while (readCount != -1) {

bos.write(buffer, 0, readCount);

readCount = bi.read(buffer);

}

bos.close();

}

}

bi.close();

System.out.println("Checksum: " + csumi.getChecksum().getValue());

}

/**

* 递归压缩

*

* 使用 org.apache.tools.zip.ZipOutputStream 类进行压缩,它的好处就是支持中文路径,

* 而Java类库中的 java.util.zip.ZipOutputStream 压缩中文文件名时压缩包会出现乱码。

* 使用 apache 中的这个类与 java 类库中的用法是一新的,只是能设置编码方式了。

*

* @param zos

* @param bo

* @param srcFile

* @param prefixDir

* @throws IOException

* @throws FileNotFoundException

*/

private static void writeRecursive(ZipOutputStream zos,

上一页  3 4 5 6 7 8 9 10 11 12 13  下一页

Tags:Android 利用 Java

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