Java GZip解压缩
来源:互联网 发布:邮箱的正则表达式php 编辑:程序博客网 时间:2024/05/17 04:16
用到了apache ant.jar的tar相关类,可去http://ant.apache.org/srcdownload.cgi 下载源码
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.URISyntaxException;import java.util.zip.GZIPInputStream;import org.apache.tools.tar.TarEntry;import org.apache.tools.tar.TarInputStream;/** * @Description GZip解压测试 */public class GZipTest { static final int BUFFER = 2048; public static void main(String argv[]) throws IOException, URISyntaxException { File file = new File(Thread.currentThread().getContextClassLoader().getResource("curl-7.23.1.tar.gz").toURI()); unZipFile(file, null); } public static void unZipFile(File file, String outputDir) { if(outputDir == null){ outputDir = file.getParent(); } try { //建立grip压缩文件输入流 TarInputStream tarIn = new TarInputStream(new GZIPInputStream(new FileInputStream(file))); TarEntry entry = null; while( (entry = tarIn.getNextEntry()) != null ){ if(entry.isDirectory()){//是目录 createDirectory(outputDir,entry.getName());//创建空目录 }else{//是文件 File tmpFile = new File(outputDir + "/" + entry.getName()); createDirectory(tmpFile.getParent() + "/",null);//创建输出目录 OutputStream out = null; try{ out = new FileOutputStream(tmpFile); int length = 0; byte[] b = new byte[2048]; while((length = tarIn.read(b)) != -1){ out.write(b, 0, length); } }catch(IOException ex){ throw ex; }finally{ if(out!=null) out.close(); } } } } catch (Exception ex){ System.err.println(ex.toString()); } } /** * 构建目录 * @param outputDir * @param subDir */ public static void createDirectory(String outputDir,String subDir){ File file = new File(outputDir); if(subDir != null && !subDir.trim().isEmpty()){//子目录不为空 file = new File(outputDir + "/" + subDir); } if(!file.exists()){ file.mkdirs(); } } }
- Java GZip解压缩
- java Gzip 压缩与解压缩
- java Gzip 压缩与解压缩
- JAVA字符串的GZIP压缩解压缩方法
- JAVA字符串的GZIP压缩解压缩方法
- JAVA字符串的GZIP压缩解压缩方法
- Java解压缩技术(二)GZIP压缩-解压缩(
- java对byte数组解压缩(zip,gzip,bzip2,jzlib)
- java对byte数组解压缩(zip,gzip,bzip2,jzlib)
- java对byte数组解压缩(zip,gzip,bzip2,jzlib)
- java对byte数组解压缩(zip,gzip,bzip2,jzlib)
- java对象序列化、gzip压缩解压缩、加密解密
- 使用GZip解压缩文件
- C解压缩gzip数据
- gzip解压缩命令
- Gzip压缩解压缩
- Linux gzip --文件解压缩
- php gzip压缩解压缩
- Extjs学习总结之10数据与ComboBox
- 计算机的各种编码2
- Linux makefile
- 应用选择器
- busybox及bash在android中的安装及init.rc修改
- Java GZip解压缩
- 企业版IDP的申请及“In House”发布
- trie字典树
- flex int与number 区别
- android2.2下编译c模块
- 关于性能优化的以及int Number uint的比较
- Kinect 微软Xbox 360
- SQL SERVER2008 存储过程、表、视图、函数的权限
- Extjs学习总结之11前端与后台的数据交互ajax