Readline的理解

来源:互联网 发布:3a算法工程师怎么样 编辑:程序博客网 时间:2024/06/11 18:28

       在BufferedReader中readline()方法是把所要读取的文件按照行来读取的,即,每次基于read()方法,一次读取一个字符之后,放置在缓冲区里,此时的缓冲区相当于一个数组,也就是一个数组,这个数组可以利用指针变化存储未知的这一行的数据。

     但是它不会把换行符也包括进来,也就是说它写入之后输出时,不会按照一行一行的输出,会输出的一塌糊涂。这是你需要自己换行。

       readLIne()方法,实际上调用的也是read方法,只不过,Windows系统中遇到换行符“\r\n”时,才会停下了,刷新缓冲区之后继续读取下一行,在LINUx系统中换行直接就是“\n".


在自己创建MYBuffererReader的MYReadLIne()方法时,可以这样标记::

      while((ch=fr.read())!=-1){

                if(ch='\r')               //这个比较漂亮,因为你只有读到\r\n两个字符时,你才能换行,否则不是换行符,

                    continue;         //这时候使用Continue,就是继续读取下一个,但是不会把\r添加进去了,

                if(ch='\n')

                        return ....、//当又读取到\n时,这时候才是碰到换行符,才会停止读取

}

。。。。。

还有一种情况是缓冲区有数据,但是因为上面代码和文件没有回车换行\n,那么此时数据会读取进缓冲区,但是读不出来这时候,就要重新加上一个小插曲

         if(bufr。length!=0)

       return SrtingBUilder.String();


原创粉丝点击