java输入流中reset方法疑问
答案:3 悬赏:40
解决时间 2021-01-04 22:17
- 提问者网友:寂寞撕碎了回忆
- 2021-01-04 11:59
java输入流中reset方法疑问
最佳答案
- 二级知识专家网友:一把行者刀
- 2021-01-04 12:38
public void reset() throws IOException
将此流重新定位到最后一次对此输入流调用 mark 方法时的位置。
reset 的常规协定是:
1、如果方法 markSupported 返回 true,那么:
如果创建流以后未调用方法 mark,或最后调用 mark 以后从该流读取的字节数大于最后调用 mark 时的参数,则可能抛出 IOException。
如果未抛出这样的 IOException,则将该流重新设置为这种状态:最近一次调用 mark 以后(如果未调用过 mark,则从文件开头开始)读取的所有字节将重新提供给 read 方法的后续调用者,后跟任何从调用 reset 时起将作为下一输入数据的字节。
2、如果方法 markSupported 返回 false,那么:
对 reset 的调用可能抛出 IOException。
如果未抛出 IOException,则将该流重新设置为一种固定状态,该状态取决于输入流的特定类型及其创建方式。提供给 read 方法后续调用者的字节取决于特定类型的输入流。
除了抛出 IOException 之外,类 InputStream 的方法 reset 不执行任何操作。
抛出:
IOException - 如果未标记此流或该标记失效。
将此流重新定位到最后一次对此输入流调用 mark 方法时的位置。
reset 的常规协定是:
1、如果方法 markSupported 返回 true,那么:
如果创建流以后未调用方法 mark,或最后调用 mark 以后从该流读取的字节数大于最后调用 mark 时的参数,则可能抛出 IOException。
如果未抛出这样的 IOException,则将该流重新设置为这种状态:最近一次调用 mark 以后(如果未调用过 mark,则从文件开头开始)读取的所有字节将重新提供给 read 方法的后续调用者,后跟任何从调用 reset 时起将作为下一输入数据的字节。
2、如果方法 markSupported 返回 false,那么:
对 reset 的调用可能抛出 IOException。
如果未抛出 IOException,则将该流重新设置为一种固定状态,该状态取决于输入流的特定类型及其创建方式。提供给 read 方法后续调用者的字节取决于特定类型的输入流。
除了抛出 IOException 之外,类 InputStream 的方法 reset 不执行任何操作。
抛出:
IOException - 如果未标记此流或该标记失效。
全部回答
- 1楼网友:有你哪都是故乡
- 2021-01-04 14:51
压根没有这两个方法好吧。
- 2楼网友:英雄的欲望
- 2021-01-04 13:11
FileInputStream 不支持mark 和 reset 方法
public boolean markSupported()测试此输入流是否支持 mark 和 reset 方法。是否支持 mark
和 reset 是特定输入流实例的不变属性。InputStream 的
markSupported 方法返回 false。
返回:如果此输入流实例支持 mark 和 reset 方法,则返回 true;否则返回
false。
另外,catch(Exception e){} 不要这样写,有异常你也不知道。。。
public boolean markSupported()测试此输入流是否支持 mark 和 reset 方法。是否支持 mark
和 reset 是特定输入流实例的不变属性。InputStream 的
markSupported 方法返回 false。
返回:如果此输入流实例支持 mark 和 reset 方法,则返回 true;否则返回
false。
另外,catch(Exception e){} 不要这样写,有异常你也不知道。。。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯