缓冲流
缓冲流种类
字节缓冲输入流:BufferedInputStream 字节缓冲输出流:BufferedOutputStream 字符缓冲输入流:BufferedReader 字符缓冲输出流:BufferedWriter
传统写入:写 1 字节 → 系统调用 → 磁盘 I/O → 返回 缓冲流写入:写 1 字节 → 存入缓冲区 (内存操作) → ... → 缓冲区满 → 批量写入磁盘

我们从实际数字上来体会缓冲流的作用

为什么缓冲区的大小一般是 8192 字节而不是越大越好

注意
对于字符流提升不明显,对于字符缓冲流而言关键点是两个特有的方法(字符流底层自带缓冲区) 字符缓冲流两个特有的方法 字符缓冲输入流 BufferedReader:readLine() 字符缓冲输出流 BufferedWriter:newLine()
缓冲流的分类

字节缓冲流
方法名称说明 public BufferedInputStream(InputStream is)把基本流包装成高级流,提高读取数据的性能 public BufferedOutputStream(OutputStream os)把基本流包装成高级流,提高写出数据的性能 原理:底层自带了长度为 8192 的缓冲区提高性能
字节缓冲输入流

细节:这里的需求是拷贝,所以同时创建了输入输出流,但是关于 IO 流的创建,并不是看起来那么随意,而是随用随创建,有时创建的时机不正确可能会导致文件中数据清空,因为创建输出流时如果文件存在,会自动清空里面的数据,如果不存在会自动创建
字符缓冲输入流

字符缓冲输入流 BufferedReader:readLine(),可以一次读取一整行 字符缓冲输出流 BufferedWriter:newLine(),跨平台的换行,不同的系统















