I/O————缓存流

为什么要使用缓存流?

当对磁盘访问次数多的时候,字节流和字符流就会感觉性能不佳,速度较慢。

缓存流,一次会读取很多的数据到缓存中,以后每一次读取都是从缓存中读取,直到缓存中数据读取完,这样就减少了io操作,提升了速度。就像拿碗吃饭一样,碗就相当于是缓存,不用吃每一口饭就向锅里盛。

分类

缓冲流分为字节和字符缓冲流

字节缓冲流为:
BufferedInputStream—字节输入缓冲流
BufferedOutputStream—字节输出缓冲流
字符缓冲流为:
BufferedReader—字符输入缓冲流
BufferedWriter—字符输出缓冲流

使用BufferedReader字符输入缓冲流和PrintWriter读取和写入文件

注意:缓存流必需要建立在一个已存在流的基础上

          readline()读取一行,遇到回车(\r)或者换行符(\n)才会返回读取结果,这就是“读取一行的意思”

          

public static void main(String[] args) {
        File file = new File("D:\\lolfilder\\lol.exe\\bufferdemo.txt");
        File file1 = new File("D:\\lolfilder\\lol.exe\\bufferdemo1.txt");
        try(//创建字符输入流
            //创建缓存流,缓存流必需建立在一个字符流基础上
                FileReader fr=new FileReader(file);
                BufferedReader br = new BufferedReader(fr);    
                //输出流与缓存流
                FileWriter fw = new FileWriter(file1);
                PrintWriter pw = new PrintWriter(fw);
                
                ) 
        {
            //readline()读取一行,遇到回车(\r)或者换行符(\n)才会返回读取结果,这就是“读取一行的意思”
            String line = br.readLine();
            System.out.println(line);
            //写入
            pw.println("这是缓存流写入的结果第一行");
            pw.flush();
            pw.println("这是缓存流写入的结果第二行");
            

            
            
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

 

posted @ 2019-05-04 10:59  奥兔man  阅读(616)  评论(0编辑  收藏  举报