zip,jar,tar文件解压

最近使用了关于jar,tar,zip包的解压 程序;

将自己的使用程序整理出来希望能给大家帮助;

1、jar解压源程序

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;

/**
 * <p>Title: 文件传输系统</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: sihitech.com.cn</p>
 * @author wujh
 * @version 1.0
 */
public class JarFileList {
 public static void main(String[] args){
  JarEntry jar;
  String outputDirectory="d:/dd/";
  String myFileName="d:/dbIcrm20260104.jar";
  try{
   FileOutputStream out;
   JarInputStream jarIn = new JarInputStream(new FileInputStream(myFileName));
   while((jar=jarIn.getNextJarEntry())!=null){
    String  name = jar.getName();
    if(jar.isDirectory()){ 
                 name = name.substring(0,name.length()-1);  
                 File file = new File(outputDirectory + name);
                 file.mkdir();
    }else{
     System.out.println("index:"+name.lastIndexOf("/"));
     if(name.lastIndexOf("/") != -1){
      String fname=outputDirectory  + jar.getName().substring(0,jar.getName().lastIndexOf("/"));
      File dt=new   File(fname);  
                  if(!dt.exists()){
                        dt.mkdirs(); 
                  }
     }    
                 File file=new File(outputDirectory + jar.getName());
                 file.createNewFile();  
                 out = new FileOutputStream(file);  
                 int  b;  
                 while((b=jarIn.read())!=-1){  
                     out.write(b);  
                 }
    }
   }
  }catch(IOException ex){
   ex.printStackTrace();
  }
 }
}
2、tar包的解压(需要下载相应的包javatar-2.5.zip)

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import com.ice.tar.TarEntry;
import com.ice.tar.TarInputStream;

/**
 * <p>Title: 文件传输系统</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: sihitech.com.cn</p>
 * @author wujh
 * @version 1.0
 */

public class TarFileList {
 public static void main(String[] args) {
  extTarFileList("d:/libsrc.tar","d:/dd/");

 }

 private static void extTarFileList(String filename, String directory) {
  OutputStream  out  =  null;
  try  {
   TarInputStream in = new TarInputStream(new FileInputStream(new File(filename)));
   TarEntry  entry  =  null;
   while((entry = in.getNextEntry()) != null) {
    if(entry.isDirectory())  {
     continue;
    }
    System.out.println(entry.getName());
    File outfile = new File(directory+entry.getName());
    new  File(outfile.getParent()).mkdirs();
    out  =  new  BufferedOutputStream(new FileOutputStream(outfile));
    int  x  =  0;
    while((x=in.read())!=-1){
     out.write(x);
    }
    out.close();
   }
   in.close();
  }  catch(IOException  ioe)  {
   ioe.printStackTrace();
  }
 }
}
3、zip包的解压

import java.io.*;
import java.util.zip.*;

/**
 * <p>Title: 文件传输系统</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: sihitech.com.cn</p>
 * @author wujh
 * @version 1.0
 */

public class ZipFileList {
 public static void main(String[] args) {
  extZipFileList("d:/sun.zip","d:/dd/");

 }

 private static void extZipFileList(String zipFileName, String extPlace) {
  try {
   ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName));
   ZipEntry entry = null;
   while ((entry = in.getNextEntry()) != null) {
    String entryName = entry.getName();
    if (entry.isDirectory()) {
     File file = new File(extPlace+entryName);
     file.mkdirs();
     System.out.println("创建文件夹:"+entryName);
    } else {
     FileOutputStream os = new FileOutputStream(extPlace+entryName);
     // Transfer bytes from the ZIP file to the output file
     byte[] buf = new byte[1024];
     int len;
     while ((len = in.read(buf)) > 0) {
      os.write(buf, 0, len);
     }
     os.close();
     in.closeEntry();
    }
   }
  } catch (IOException e) {
  }
  System.out.println("解压文件成功");
 }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值