通过ZipFIle来介绍zip格式转载
原创1 除了通过ZipInputStream来解析zip除了文件,您还可以传递。ZIpFile来解析zip文件。
如:String file_name="C:/Users/xucla/Desktop/CO60.zip";
ZipFile zip=new ZipFile(new File(file_name));//通过ZipFile解析zip文件
2 通过ZipFile的entries()方法,你可以得到。zip内部文件,获取枚举类型(Enumeration)
如:String file_name="C:/Users/xucla/Desktop/CO60.zip";
ZipFile zip=new ZipFile(new File(file_name));
Enumeration zipEnumeration=zip.entries();// 得到zip文件集合。枚举类型
while(zipEnumeration.hasMoreElements()){
ZipEntry zipEntry=(ZipEntry)zipEnumeration.nextElement();//一个接一个
System.out.println("文件名称:"+zipEntry.getName());//通过getName()你可以得到文件名。
}
3 通过ZipFile的entries()得到zip在内部文件对象之后。可以通过。ZipFile的getInputStream(ZipEntry)阅读内容
如:String file_name="C:/Users/xucla/Desktop/CO60.zip";
ZipFile zip=new ZipFile(new File(file_name));
Enumeration zipEnumeration=zip.entries();// 得到zip文件集合。枚举类型
while(zipEnumeration.hasMoreElements()){
ZipEntry zipEntry=(ZipEntry)zipEnumeration.nextElement();
System.out.println("文件名称:"+zipEntry.getName());
byte[] bytes=new byte[1024];
InputStream inputStream=zip.getInputStream(zipEntry);//获取文件。InputStream对象接下来,您可以获取文件的内容。
BufferedInputStream bufferedInputStream=new BufferedInputStream(inputStream);
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
int num=-1;
while((num=bufferedInputStream.read(bytes,0,bytes.length))>-1){
byteArrayOutputStream.write(bytes,0,num);
}
byte[] bytes_=new byte[1024];
bytes_=byteArrayOutputStream.toByteArray();
String neirong=new String(bytes_,"UTF-8");
System.out.println(neirong);
}
概述:至ZipFile可以解析zip文件通过ZipFile的entries()得到zip内部文件枚举(Enumeration)。通过ZipEntry的getName()获取文件名。通过ZipFile的getInputStream(ZipEntry)获取文件。InputStream。获取文件流以获取文件的内容。
完整示例:
String zipFileName="C:/Users/xucla/Desktop/CO60.zip";
public void readZipForZipFile(String file_name){
try {
ZipFile zip=new ZipFile(new File(file_name));
Enumeration zipEnumeration=zip.entries();
while(zipEnumeration.hasMoreElements()){
ZipEntry zipEntry=(ZipEntry)zipEnumeration.nextElement();
System.out.println("文件名称:"+zipEntry.getName());
byte[] bytes=new byte[1024];
InputStream inputStream=zip.getInputStream(zipEntry);
BufferedInputStream bufferedInputStream=new BufferedInputStream(inputStream);
ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
int num=-1;
while((num=bufferedInputStream.read(bytes,0,bytes.length))>-1){
byteArrayOutputStream.write(bytes,0,num);
}
byte[] bytes_=new byte[1024];
bytes_=byteArrayOutputStream.toByteArray();
String neirong=new String(bytes_,"UTF-8");
System.out.println(neirong);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
作者:xclsky1120
来源:CSDN
原文:https://blog.csdn.net/yumolan4325/article/details/79019573
版权声明:本文为博主原创文章。转载请附上博客链接!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除