BufferedReader的mask和reset
浏览:loading次 时间:2008-10-18 06:53:37- Java code
- int i = 0 ; strTemp = buf.readline(); buf.mark( 99999 ); while ((strTemp != null ) && (strTemp.trim().length() != 0 )){ i ++ ; strTemp = buf.readLine(); } buf.reset();
用户名:bluesmile979 得分:100 时间:2008-10-18 09:01:43
建议如下思路 int i=0; strTemp = buf.readline(); int nMark = 999999; long size = 0; buf.mark(nMark); while ((strTemp != null) && (strTemp.trim().length() != 0)){ i++ ; strTemp = buf.readLine(); size += strTemp.length(); if(size>nmark){ buf.reset(); nMark +=nMark; buf.mark(nMark); buf.skip(size); } } buf.reset(); 只是演示一下我的思路,关于效率,skip函数不会浪费太多时间的。
用户名:bluesmile979 得分:40 时间:2008-10-21 06:47:12
大多数处理采用的方法是先读出来,经过简单处理后,保存到其他的地方,比如数组容器,然后再进行具体的处理。 毕竟反复操作io数据流不是什么好事情。效率,安全性都值得怀疑。
用户名:xdy018192 得分:0 时间:2011-05-24 10:03:19
表示看不太懂。。。。。。。。
用户名:hfzlmx 得分:0 时间:2008-12-05 00:53:14
说的好,顶一个
用户名:fighter1945 得分:0 时间:2008-10-21 08:32:56
非常感谢,ls真是负责到底。 啥也不多说了,加分奉上。
用户名:fighter1945 得分:0 时间:2008-10-21 06:22:04
好思路,不过类似的东西怎么在网上根本就找不见呢,难道大家都是一口气读到底,从来不用返回就完了?
用户名:bluesmile979 得分:0 时间:2008-10-18 09:03:07
至于步长nMark,就可以根据估计的数据量,可能超出的范围来设定初始值以及每次增加多少。比如我这里每次增加一倍。