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