黑马程序员之缓冲区

时间:2022-02-17 20:57:43

------- android培训java培训、期待与您交流! ----------

一,BufferedWriter类

        代码:

                 //创建一个字符写入流对象

                 FileWriter  fw = new  FileWriter("buf.txt");

                 //加入缓冲技术,提高字符写入流效率

                 BufferedWriter bufw = new  BufferedWriter(fw);

                bufw.write("abcde");

                //刷新后,数据才会真正写入到文件当中

                bufw.flush();

                bufw.close();

               // fw.close();//缓冲区只是提高效率才存在的,真正对文件进行操作的依然是FileWriter对象,因此关闭缓冲区,就会关闭字符流对象

        注意1:关于换行,windows系统中要使用\r\n,linux系统中使用\n,而\r就成了多余字符了。

                      在缓冲区对象中,newLine()方法解决了这个问题。它在windows系统和linux系统都会正确显示换行符。

        注意2: 只有缓冲区对象才有newLine()方法。也就是只有用缓冲区,才可以用newLine()方法。

        注意3:记住关于刷新操作flush(),最好写一次刷一次,即调用write一次,就要调用flush一次。避免因掉电等原因,缓冲区的数据清空了,却还没有刷新到文件当中。

二,BufferedReader类

        注意1:BufferedReader类有一个方法readLine()可以每次读取一行

        注意2:readLine()方法,读到文件尾返回空,而不是像FileReader一样读到文件尾时返回-1

        FileReader fr = new FileReader("buf.txt");

        BufferedReader bufr  =  new BufferedReader(fr);

        String line = null;

        while((line=bufr.readLine()) != null){

                  System.out.println(line);

        }

        //String s1 = bufr.readLine();

        //System.out.println(s1);

        bufr.close();

注意:BufferedWriter类和BufferedReader类都是针对字符流而言的。

            BufferedWriter类将文本写入字符输出流。

            BufferedReader类从字符输入流中读取文本。