如何用java读取zip文件名和zip内文件的文件名,在线等
1个回答
推荐于2017-12-16
展开全部
下面这个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();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询