使用ZipInputStream对象,available()如何返回1但读取返回-1?

时间:2011-08-09 05:16:25

标签: java

这里的人是相关代码......

ZipInputStream zis = new ZipInputStream(zip.getInputStream(ze));
System.out.println(zis.available());
int count = zis.read(data,0,buffer);
System.out.println(count);

我不断将此作为输出... 1 -1

现在我的理解是1表示可用意味着它不在文件的末尾,-1从读取返回意味着它是文件的结尾。他们怎么都是真的?

2 个答案:

答案 0 :(得分:1)

这只是'估计':见Javadoc。据推测,在这种情况下,它意味着您应该进行读取以收集EOS指示。可用()的正确用法很少,我怀疑这是其中之一。

答案 1 :(得分:0)

检查传递给read方法的'buffer'的值是否小于或等于0?

相关问题