java解压缩文件代码 java实现解压缩

Java压缩与解压缩问题/**
*类名:zipFileRelease
*说明:一个zip文件解压类
*介绍:主要java解压缩文件代码的zip文件释放方法releaseHandle()
*用ZipInputStream类和ZipEntry类将zip文件的入口清单列举出来java解压缩文件代码,然后
*根据用户提供的输出路径和zip文件的入口进行组合通过DataOutputStream
*和File类进行文件的创建和目录的创建,创建文件时的文件数据是通过
*ZipInputStream类、ZipEntry类、InputStream类之间的套嵌组合获得的 。
*注意:如果zip文件中包含中文路径程序将会抛出异常
*日期:2005-7-1
*作者:Pcera
*/
import java.io.*;
import java.util.*;
import java.util.zip.*;
class zipFileRelease{
private String inFilePath;
private String releaseFilePath;
private String[] FileNameArray;//存放文件名称的数组
private ZipEntry entry;
//
private FileInputStream fileDataIn;
private FileOutputStream fileDataOut;
private ZipInputStream zipInFile;
private DataOutputStream writeData;
private DataInputStream readData;
//
private int zipFileCount = 0;//zip文件中的文件总数
private int zipPathCount = 0;//zip文件中的路径总数
/**
*初始化函数
*初始化zip文件流、输出文件流以及其他变量的初始化
*/
public zipFileRelease(String inpath,String releasepath){
inFilePath = inpath;
releaseFilePath = releasepath;
}
/**
*初始化读取文件流函数
*参数:FileInputStream类
*返回值:初始化成功返回0 , 否则返回-1
*/
protected long initInStream(ZipInputStream zipFileA){
try{
readData = https://www.04ip.com/post/new DataInputStream(zipFileA);
return 0;
}catch(Exception e){
e.printStackTrace();
return -1;
}
}
/**
*测试文件路径
*参数:zip文件的路径和要释放的位置
*返回值:是两位整数,两位数中的十位代表输入路径和输出路径(1输入、2输出)
*各位数是代表绝对路径还是相对路径(1绝对、0相对)
*返回-1表示路径无效
protected long checkPath(String inPath,String outPath){
File infile = new File(inPath);
File infile = new File(outPath);
}
*/
/**
*初始化输出文件流
*参数:File类
*返回值:初始化成功返回0 , 否则返回-1
*/
protected long initOutStream(String outFileA){
try{
fileDataOut = new FileOutputStream(outFileA);
writeData = https://www.04ip.com/post/new DataOutputStream(fileDataOut);
return 0;
}catch(IOException e){
e.printStackTrace();
return -1;
}
}
/**
*测试文件是否存在方法
*参数:File类
*返回值:如果文件存在返回文件大小,否则返回-1
*/
public long checkFile(File inFileA){
if (inFileA.exists()){
return 0;
}else{
return -1;
}
}
/**
*判断文件是否可以读取方法
*参数:File类
*返回值:如果可以读取返回0,否则返回-1
*/
public long checkOpen(File inFileA){
if(inFileA.canRead()){
return inFileA.length();
}else{
return -1;
}
}
/**
*获得zip文件中的文件夹和文件总数
*参数:File类
*返回值:如果正常获得则返回总数,否则返回-1
*/
public long getFilFoldCount(String infileA){
try{
int fileCount = 0;
zipInFile = new ZipInputStream(new FileInputStream(infileA));
while ((entry = zipInFile.getNextEntry()) != null){
if (entry.isDirectory()){
zipPathCount++;

推荐阅读