InputStream.skip() 啥时候跳过少于预期的字节?

Posted

技术标签:

【中文标题】InputStream.skip() 啥时候跳过少于预期的字节?【英文标题】:When does InputStream.skip() skips lesser than expected bytes?InputStream.skip() 什么时候跳过少于预期的字节? 【发布时间】:2012-09-19 18:48:18 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

如果我使用 FileInputStream.skip() 我是否仍然担心方法的输出值小于输入(输入'n'字节之前到达文件结尾的情况除外) ?. 是的。如果规范留下了一种可能性,永远不要忽视这种可能性。

以上是关于InputStream.skip() 啥时候跳过少于预期的字节?的主要内容,如果未能解决你的问题,请参考以下文章

怎样通过HTML或者其他啥源代码直接跳过爱奇艺视频的VIP进行下载?

dubbo的lazyconnection啥意思?

有啥函数,啥可以获取当天的第一个值并在 Python 中跳过同一天的值?

div 布局大框架宽度高度根据啥设置 不同的浏览器怎么设?

“INFO:TLD 已跳过。URI 已定义”是啥意思?

当宏用作变量名时,有啥方法可以跳过宏替换(在预处理期间)?