最近使用了关于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("解压文件成功");
}
}