java 读取zip里面的文件夹

2024-11-02 06:54:09
推荐回答(4个)
回答1:

思路是这样的:1、将压缩文件解压缩到临时目录2、读取临时目录中的文件或者文件夹(如果是文件夹则读取文件夹中的文件以此类推)3、将读取的内容显示4、删除临时文件夹中的文件或者文件夹这些都没有难点gkos你觉得对你来说难度在哪里呢

回答2:

给你思路就可以了。你可以先创建ZipFile 将里面的文件取出来放到file 中,然后用文件流读出来。

回答3:

看看没有相关的插件可以用,或者到java.util.zip寻找灵感

回答4:

下面这个DEMO支持ZIP里的*.txt,但不支持ZIP里的子目录里的*.txt
你可以自己加一个遍历去取子目录里所需的内容即可
请用org.apache.tools.zip下的包,不要用java.util.zip下的包,因为中文支持不好

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;

public class TestZip {
public static void printZipTxt(String zipPath) throws IOException{

ZipFile zipFile=new ZipFile(zipPath);
for (Enumeration e = zipFile.getEntries(); e.hasMoreElements();){
ZipEntry entry=e.nextElement();
System.out.println("文件名:"+entry.getName()+", 内容如下:");
if(entry.getName().toLowerCase().endsWith(".txt")){
InputStream is=null;
is= zipFile.getInputStream(entry);
byte[] b=new byte[1024];
int leng=-1;
String txtStr="";
while (( leng=is.read(b)) !=-1){
txtStr+=new String(b, 0, leng);
}
System.out.println(txtStr);
if(is!=null){
is.close();
}
}
}
}
public static void main(String[] args) {
try {
printZipTxt("c:\\test.zip");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}