int a = bis.available();
System.out.println("*****"+a);
bis.skip(10000);
a = bis.available();
System.out.println("*****"+a);
bis.skip(10000);
a = bis.available();
System.out.println("*****"+a);
输出:
*****369608
*****361424
*****351424
当我使用skip时,如果我尝试跳过10000,它将只跳过8184个字节。如果我再次这样做,这次它将正常工作。
答案 0 :(得分:1)
这是按照指定的方式工作。来自spec:
跳过方法可能由于各种原因最终跳过一些较小的字节数,可能为0. [...]返回跳过的实际字节数。
答案 1 :(得分:1)
您的测试无法证明任何事情,因为您滥用available()
。 Javadoc 中有一个特定的警告使用它作为流中重新编写的字节数。这不是它的用途。