InputStream.skip()什么时候跳过小于预期的字节?

时间:2012-09-27 21:55:44

标签: java file io inputstream seek

在我的记录器代码中,我使用FileInputStream来读取日志文件。保存文件中最后从日志文件“byteOffset”读取的字节数。每当读者必须阅读日志时,它将FileInputStream.skip(byteOffset)并从那里读取。在这种情况下,我在InputStream.skip()文档中找到了以下声明。

  

从此输入流中跳过并丢弃n个字节的数据。的的   由于各种原因,跳过方法最终会跳过一些   较小的字节数,可能为0.这可能是由于任何一个   条件数量;在n个字节之前到达文件末尾   跳过只有一种可能性。

除了文档中提到的内容之外,实际跳过的数据还有哪些原因会因输入而异?我只是想确定在我的日志阅读器代码中我需要准备的所有情况。

1 个答案:

答案 0 :(得分:3)

这取决于实施。也许它是一个缓冲流,它只从后端流中读取100个字节,并且检索更多字节需要更多时间。

(我认为这不是 决定将该部分纳入InputStream规范,但现在无法改变。)