zoukankan      html  css  js  c++  java
  • BufferedReader的mask和reset  

    BufferedReader的mask和reset

    浏览:loading次  时间:2008-10-18 06:53:37
        有个程序,需要BufferedReader读到最后一行后,然后返回到第n行,因为还要用来做别的用处。
          因为以前不太常用这种方法,看了javadoc,public void mark(int readAheadLimit),于是自己随便填了数字进去,这么做的话,如果数据量很大,肯定会有错误出来,如果数据量很小,又有点浪费,现在不知道怎 么改了,特地求教一下,应该怎么写才能让BufferedReader返回某一行呢?给点建议也成,谢谢  代码如下    (buf 就是那个BufferedReader)
       
    Java code
    int i=0; strTemp = buf.readline(); buf.mark(99999); while ((strTemp != null) && (strTemp.trim().length() != 0)){ i++ ; strTemp = buf.readLine(); } buf.reset();

    分享到QQ空间

    用户名: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,就可以根据估计的数据量,可能超出的范围来设定初始值以及每次增加多少。比如我这里每次增加一倍。
  • 相关阅读:
    pycharm2016.2.3注册码到期, 激活, 破解版
    CSS图片垂直居中方法
    C# 与 SQLite的操作
    C#操作Dataset数据集与SQLite数据库
    混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法
    从谎言看女性营销心理【转】
    Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.【转】
    新房收房时哪些注意事项--装修史上最细规则【转】
    人际沟通最忌讳一脸死相【转】
    比特币
  • 原文地址:https://www.cnblogs.com/lexus/p/2391398.html
Copyright © 2011-2022 走看看