4

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

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

除了文档中提到的内容之外,由于其他原因,实际跳过的数据会与输入有所不同吗?我只是想确定在我的日志阅读器代码中我需要为所有情况做好准备。

4

1 回答 1

3

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

(我不认为将那部分放入规范中是一个好的InputStream决定,但现在不可能改变。)

于 2012-09-27T22:16:56.993 回答