如何解决java文件流处理异常马克/重置不支持的问题

  介绍

如何解决java文件流处理异常马克/重置不支持的问题?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强>原因:

给定的流不支持马克和重置就会报这个错误。

获取到一个网络流,这个网络流不允许读写头来回移动,也就不允许马克/重置机制。

<强>解决办法:

用BufferedInputStream把原来的流包一层。

BufferedInputStream buffInputStream=new BufferedInputStream (fileInputStream);

<强> Java BufferedReader之马克和重置方法实践

在读取文本的操作中,常常会在读取到文件末尾时重新到文件开头进行操作。通过搜索发现,有两种方法:

(1)马克和重置方法,但是在博客中都是以简短的字符串为示例对象,

(2)利用randomacessfile中的寻求方法,寻求方法可进行移动。

由于前面的文本操作使用了BufferedReader,所以只能用马克和重置方法将程序进行完善。非常好理解这两个方法,一个在前面做标记,另一个重置返回到做标记的位置。

<强>首先,看一下马克方法

公共空白
标记(int readAheadLimit)抛出IOException
标记流中的当前位置。后续调用重置()将试图重新定位流到这一点。
覆盖:
马金类读者
参数:
readAheadLimit -限制> int大小;   如果(filesize>=2147483647) {   Toast.makeText(……),告诉();   其他}{   大?(int)文件大小;   }

<强>第三,设置马克参数

如果完成前两步后,并标记(大小)你就去尝试,那么还会出错,为什么呢?

如何解决java文件流处理异常马克/重置不支持的问题

前面的标记()方法已经讲过“当读取字符达到或超过此限制时,尝试重置流会失败”,所以最好还要将标记的大小数值加1。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

如何解决java文件流处理异常马克/重置不支持的问题