java 读取zip里面的文件夹
是这样的,有一个zip,里面有一个文件夹,文件夹里面有很多.txt文件,知道.txt文件的名字,请问,怎么获取.txt里面的数据(返回的是一个String,也就是.txt...
是这样的,有一个zip,里面有一个文件夹,文件夹里面有很多.txt文件,知道.txt文件的名字,请问,怎么获取.txt里面的数据(返回的是一个String,也就是.txt里面的内容),哪位厉害大神给我写个dome,参考下
展开
展开全部
给你思路就可以了。你可以先创建ZipFile 将里面的文件取出来放到file 中,然后用文件流读出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看没有相关的插件可以用,或者到java.util.zip寻找灵感
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面这个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<? extends ZipEntry> 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();
}
}
}
你可以自己加一个遍历去取子目录里所需的内容即可
请用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<? extends ZipEntry> 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();
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询