ZipInputStream无法读取zip文件的所有信息
我使用ZipInputStream
编写了一些代码,但它有问题。ZipInputStream无法读取zip文件的所有信息
ZipInputStream zin=null;
zin=new ZipInputStream(new BufferedInputStream(
new FileInputStream("e:/testzip.zip")));
ZipEntry ze;
while((ze=zin.getNextEntry())!=null) {
System.out.println("readfile"+ze.getName());
int c=0;
while((c=zin.read())>0) {
System.out.write(c);
}
}
zin.close();
testzip.zip
有3个文本文件。也就是说,正确的输出应该是三个文件名及其内容。但是,我的输出是3个文件名和2个内容。为什么只有2个内容,而不是3个?
我在3个文本文件中做了一个zip文件;他们是文本文件的事实对于下面的代码工作很重要。我读了所有条目,并写出它的名称和内容:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class Main {
public static void main(String[] args) throws Exception {
ZipFile zipFile = new ZipFile("D:\\zip.zip");
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while(entries.hasMoreElements()) {
ZipEntry zipEntry = entries.nextElement();
System.out.println(zipEntry.getName());
BufferedReader bufferedeReader = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry)));
String line = bufferedeReader.readLine();
while(line != null) {
System.out.println(line);
line = bufferedeReader.readLine();
}
bufferedeReader.close();
}
zipFile.close();
}
}
我已经试过了,但输出相同。感谢你 – 2012-04-10 09:57:17
你确定第三个文件不是空的吗? – Tom 2012-04-10 10:00:02
是的。我确认。我检查zip文件超过5次 – 2012-04-10 10:02:04
谢谢你@安德鲁汤普森 – 2012-04-10 10:11:31
你可能不是英语的母语,但了解'阅读'和'写'之间的区别很重要。 (无法写入输入流,只能从中读取。)2)请小心输入文章,使用信息发布/编辑表单顶部的代码格式化按钮,并从中删除无关的空白行代码发布。 - 欢迎来到SO! – 2012-04-10 10:13:37
欢迎您提供编辑和我可以提供的任何提示。 :) – 2012-04-10 10:14:22