InputStream::mark(int readlimit)
和 InputStream::reset()
的API文档明确了后续的read
来电 - InputStream
可以只要支持mark
并且不再读取readlimit
个字节,就会重置。
我的问题是 - 后续skip
来电也是如此吗?换句话说 - 我可以skip
和read
小于readlimit
个字节,然后reset
流吗?或者skip
不算作“可重置”操作吗?
我知道我可以测试它并找出,甚至更好 - 阅读现有InputStream
实现的一些来源。但是,当我正在开发自己的InputStream
时 - 我想从“一般合同”的角度理解 - 你认为它应该在是否支持skip
的情况下实现? (我问,因为它可能会在我的实现中引入一些代码复杂性。)