BufferedReader.mark方法参数问题

ibatsiSpring 2010-10-18 09:33:49
BufferedReader有一个标记方法mark。
使用这个方法需要穿进去一个参数,参数的意思,一直没有弄明白。

看过官方文档,也看过一些资料。

目前理解使用mark方法传入的参数表示:

1、读取之后可在读取的字符长度。
2、可读取的字符长度。


如果是一种理解,数据都读取完了为什么还要多余设置读取完之后还可以在读取字符的长度?

如果是第二种理解,那么我将mark中的参数设置为0也是可以运行。

请大家告诉我真想,谢谢你们。
请不要复制网络上的参考资料或是官方文档的解释。
也不要复制别人的代码给我看。


下面是我的代码,就当前这个代码,帮忙解释一下这个参数在这里有什么用?


try {
FileReader f = new FileReader("c:/a.txt");
BufferedReader br = new BufferedReader(f);
String read = br.readLine();
while(read != null){
System.out.println(read);
read = br.readLine();
if(br.markSupported()){
if(read.equals("511111")){
System.out.println("标记位置在511111");
br.mark(0);
}

if(read.equals("911111")){
System.out.println("读取到这行返回到标记位置循环读取");
br.reset();
}
}
}
br.close();
f.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}



还有一个问题是,设置了mark,遇到reset方法并不是从mark设置的那行读取,而是下一行?

当前这个代码,循环往返读取数据时,不会再出现“标记位置在511111”!

那是不是意味着遇到reset方法时,从mark设置的下一行或下一个字符或数据开始读取?
...全文
558 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
放开那个衰锅 2013-01-20
  • 打赏
  • 举报
回复
me too 一直运行不出api上说的效果
woaibcb2008 2012-01-24
  • 打赏
  • 举报
回复
12楼(楼上)正解!!!!!谢谢楼上!!!!
joshuawangzjie 2011-11-07
  • 打赏
  • 举报
回复
我对官方文档上的理解是这样的,mark参数就是从mark的位置开始接着读的字符个数,在这些字符个数的范围内使用reset方法,是可以成功的,超过这个字符个数的范围,再使用reset方法就是失败。可我的代码是对大量数据的处理,我把mark参数改成1和511结果是一样的,所以感觉mark的参数大小是没影响的,可到底是怎么样的,我也在继续找答案。。。
ibatsiSpring 2010-10-28
  • 打赏
  • 举报
回复
在找找答案?
ibatsiSpring 2010-10-26
  • 打赏
  • 举报
回复
继续找个答案!
Miracle1216 2010-10-25
  • 打赏
  • 举报
回复
学习。。。
ibatsiSpring 2010-10-25
  • 打赏
  • 举报
回复
继续找答案!
precious 2010-10-25
  • 打赏
  • 举报
回复
学习....
ibatsiSpring 2010-10-22
  • 打赏
  • 举报
回复
继续找答案!
ibatsiSpring 2010-10-19
  • 打赏
  • 举报
回复
谢谢楼上的,继续找找答案!
ibatsiSpring 2010-10-18
  • 打赏
  • 举报
回复
赐教!
caofaping 2010-10-18
  • 打赏
  • 举报
回复
mark(参数) 这个参数我没发现有什么用,
mark(参数) 标记位置是readLine()读取的一行数据的最后一个字符,这个字符在整个数据的位置
reset() 定位到这个位置。

个人理解仅供参考,楼主可以看下源码。
ibatsiSpring 2010-10-18
  • 打赏
  • 举报
回复
请教!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧