为什么要使用缓存流?
当对磁盘访问次数多的时候, 字节流和字符流就会感觉性能不佳, 速度较慢.
缓存流, 一次会读取很多的数据到缓存中, 以后每一次读取都是从缓存中读取, 直到缓存中数据读取完, 这样就减少了 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();
- }
- }
来源: http://www.bubuko.com/infodetail-3046080.html