image.png

字节流:

输入流:
所有字节输入流的超类 InputStream
方法: int read() 一次读一个字节
int read(byte[] bs)一次读一个字节数组
int read(byte[] bs,int pff,int len) 一次读一个字节数组一部分
FileInputStream 文件字节输入流
BufferedInputStream 字节缓冲输入流
输出流:
所有字节输出流的超类 OutputStream
void write(int ch); 一次输出一个字节
void write(byte[] bs) 一次输出一个字节数组
void write(byte[] bs,int off, int len) 一次输出一个字节数组一部分
FileOutputStream 文件字节输出流
BufferedOuteputStream 字节缓冲输出流

字符流:

输入流:
所有字符输入流的超类 Reader
FileReader 文件字符输入流
BufferedReader 字符缓冲输入流:
InputStreamReader 转换字符输入流
int read() 一次读一个字符
int read(char[] cs)一次读一个字符数组
int read(char[] cs,int off, int len)一次读一个字符数组的一部分
输出流:
所有字符输出流的超类 : Writer
FileWriter 文件字符输出流
BufferedWriter 字符缓冲输出流
OutputStreamWriter 转换字符输出流
void write(int ch)一次输出一个字符
void write(String str)一次输出一个字符串
void write(String str,int off,int len)一次输出一个字符串的一部分
void write(char[] cs)一次输出一个字符数组
void write(char[] cs,int off,int len)一次输出一个字符数组一部分

字符流=字节流+编码表

Reader(abstract) 所有字符输入流的超类
Writer(abstract) 所有字符输出流的超类
通过转换流 传入字节流+编码表 可以得到一个字符串

字节流和字符流中间涉及到转换流:

InputStreamReader 转换字符输入流
OutputStreamWriter 转换字符输出流

字节流和字符流的区别:

用Windows本地记事本打开
看得懂的使用字符流
看不懂的使用字节流
不明白的就使用字节流
字节流是万能流