在 java.io.InputStream 及其子类型中可靠地跳过数据
我正在处理二进制流,需要有效地跳过我不感兴趣的数据范围,到将要处理的某些数据。
InputStream.skip(long)
在保证方面没有太大作用:
跳过并丢弃此输入流中的 n 个字节的数据。由于各种原因,skip 方法最终可能会跳过一些较小的字节数,可能是 0。这可能是由许多条件中的任何一种引起的;在跳过 n 个字节之前到达文件末尾只是一种可能性。返回跳过的实际字节数。
我需要知道发生了以下两件事之一:
- 直播结束
- 跳过了字节
非常简单。但是,此描述中提供的宽大意味着,例如,可以跳过几个字节并返回。当然,它告诉我它只是跳过了那几个,但不清楚为什么。BufferedInputStream
所以我的问题是:你能以这样一种方式利用吗?你知道流何时结束或跳过何时成功完成?InputStream.skip(long)