Java IO学习【7】BufferedReader的学习-readLine原理

来源:互联网 发布:手机淘宝网触屏版官网 编辑:程序博客网 时间:2024/05/01 02:18

       最近的生活很有规律,一般到晚上会比较累早早就睡觉了,早上8点以前也能起床,然后到实验室学习,下午尽量计划着运动一会儿,晚上是绝对要健身。这样子的生活也算是很不错了,哈哈。开始学习技术。

      在前面【6】中写了一个BufferedWriter将字符写入一个文件,大概过程就是先建立一个可写入文件的流对象同时指定目的地址,然后建立一个缓冲区指定想要缓冲的流对象,接下来用缓冲区的函数将字符缓冲至缓冲区,通过flush函数将缓冲区的字符提取到文件中,然后关闭缓冲区(在关闭缓冲区的同时会将流文件也关闭,因为流文件才是底层的文件)。一般来说Reader和Writer是成对出现的。那么可以想到接下来学习Reader!

        对于Reader前几步和Writer没有区别,但这个有个特例就是可以按行读取(这在Writer是没有的,只有字符数组的高效写入)即readLine先写一个readLine()的基本代码。如下:

public static void main(String[] args) throws IOException   {FileReader fr = new FileReader("buf.txt");BufferedReader bufr = new BufferedReader(fr); //关联一个缓冲String line =null;while((line=bufr.readLine())!=null){System.out.println(line);}bufr.close();}

哈哈哈,结束一个开始第二个。

        关于缓冲区的一些原理,在FileReader和BufferedReader里都有read()单个字节和数组的读取,那么两者有什么不同么。首次FileReader里是操作底层的读写即从硬盘上进行字符和数据的读取。而BufferedReader是先将数据抓取到内存的缓冲区再从缓冲区中读取字节或数组,操作的是Buffer里的数据(非底层硬盘的数据),这样子可以提高字符的读取效率。readLine();就是基于read方法,将读取的字符进行缓冲再加上结束判断标记,将标记前的缓冲数据变成字符串返回。


 

 

0 0