一个InputStream实例inputStream调用mark(5)方法后,又连续调用read()方法读取了8个字节,此时调用reset()方法会发生什么?

答案解析

当mark()方法设置的readlimit值小于实际读取的字节数时,调用reset()方法将不会重置到mark()设置的位置,而是可能重置失败或者效果不可靠。这里由于设置的readlimit是5,而实际读取了8个字节,所以reset无法保证重置到mark位置,可能会抛出异常或行为不可预测。考虑到题目要求基于提供信息进行判断,如果InputStream是默认实现而不是BufferedInputStream这类会主动抛出异常的类,则可能出现行为D,因为reset方法可能会是空操作或者返回当前位置,故选择最符合题意选项D.
正确答案:D
随机推荐
开始刷题