字节缓冲流根据流的方向,共有2个
l 写入数据到流中,字节缓冲输出流 BufferedOutputStream
l 读取流中的数据,字节缓冲输入流 BufferedInputStream
它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度
一个字节一个字节的复制文件

一个字节数组一个字节数的复制文件

字符缓冲流
l 字符缓冲输入流 BufferedReader
l 字符缓冲输出流 BufferedWriter
完成文本数据的高效的写入与读取的操作
写入和换行:

读出:

字符缓冲流复制文本
一个字符一个字符的复制

一个字符数组一个字符数组的复制

l 明确一:要操作的数据是数据源还是数据目的。
源:InputStream Reader
目的:OutputStream Writer
先根据需求明确要读,还是要写。
l 明确二:要操作的数据是字节还是文本呢?
源:
字节:InputStream
文本:Reader
目的:
字节:OutputStream
文本:Writer
已经明确到了具体的体系上。
l 明确三:明确数据所在的具体设备。
源设备:
硬盘:文件 File开头。
内存:数组,字符串。
键盘:System.in;
网络:Socket
目的设备:
硬盘:文件 File开头。
内存:数组,字符串。
屏幕:System.out
网络:Socket
完全可以明确具体要使用哪个流对象。
l 明确四:是否需要额外功能呢?
额外功能:
转换吗?转换流。InputStreamReader(读) OutputStreamWriter(写)
高效吗?缓冲区对象。BufferedXXX
InputStream字节流 读
FileInputStream 字节流读
BufferedInputStream 缓冲字节流读
OuputStream字节流 写
FileOutputStream 字节流写
BufferedOuputStream 缓冲字节流写
Writer 字符流 写
OutputStreamWriter 字符 转换流 写
FileWriter 字符流 写
BufferedWriter 字符缓冲流 写
Reader 字符流 读
InputStreamReader 字符转换流 读
FileReader 字符流 读
BufferedReader 字符缓冲流 读
原文:https://www.cnblogs.com/www1842564021/p/12259157.html