如何解决java文件流处理异常马克/重置不支持的问题?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强>原因:强>
给定的流不支持马克和重置就会报这个错误。
获取到一个网络流,这个网络流不允许读写头来回移动,也就不允许马克/重置机制。
<强>解决办法:强>
用BufferedInputStream把原来的流包一层。
BufferedInputStream buffInputStream=new BufferedInputStream (fileInputStream);
引用><强> Java BufferedReader之马克和重置方法实践强>
在读取文本的操作中,常常会在读取到文件末尾时重新到文件开头进行操作。通过搜索发现,有两种方法:
(1)马克和重置方法,但是在博客中都是以简短的字符串为示例对象,
(2)利用randomacessfile中的寻求方法,寻求方法可进行移动。
由于前面的文本操作使用了BufferedReader,所以只能用马克和重置方法将程序进行完善。非常好理解这两个方法,一个在前面做标记,另一个重置返回到做标记的位置。
<强>首先,看一下马克方法强>
公共空白
标记(int readAheadLimit)抛出IOException
标记流中的当前位置。后续调用重置()将试图重新定位流到这一点。
覆盖:
马金类读者
参数:
readAheadLimit -限制> int大小; 如果(filesize>=2147483647) { Toast.makeText(……),告诉(); 其他}{ 大?(int)文件大小; }<强>第三,设置马克参数强>
如果完成前两步后,并标记(大小)你就去尝试,那么还会出错,为什么呢?
前面的标记()方法已经讲过“当读取字符达到或超过此限制时,尝试重置流会失败”,所以最好还要将标记的大小数值加1。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
如何解决java文件流处理异常马克/重置不支持的问题