给定的流不支持mark和reset就会报这个错误。通过搜索发现,有两种方法:mark和reset方法,但是在博客中都是以简短的string为示例对象;利用randomacessfile中的seek方法,seek方法可进行移动。由于前面的文本操作使用了BufferedReader,所以只能用mark和reset方法将程序进行完善。mark方法仅有一个参数,翻译过来就是“保证mark有效的情况下限制读取的字符数。当 读取字符达到或超过此限制时,尝试重置流会失败。当限制数值大于输入buffer的默认大小时,将会动态分配一个容量不小于限制数值的buffer。因此,应该慎用大数值。”前面的mark()方法已经讲过“当读取字符达到或超过此限制时,尝试重置流会失败”,所以最好还要将mark的size数值加1.解决。

解决java文件流处理异常 mark/reset not supported问题

解决java文件流处理异常 mark/reset not supported问题