转换流InputStreamReader和OutputStreamWriter 的用法和常用API

转换流InputStreamReader和OutputStreamWriter 的用法和常用API

介绍

转换流使用了适配器模式

InputStreamReader

InputStreamReader 类是字节流和字符流之间的桥梁:它读取字节,并使用指定的字符集(没有指定就使用默认字符集)将其解码为字符

每次调用一个 InputStreamReaderread()方法都可能导致从底层字节输入流中读取一个或多个字节。

为了实现字节到字符的有效转换,可以从基础流中提取比满足当前读取操作所需的更多字节。为了获得最高效率,请考虑在 BufferedReader 中包装InputStreamReader

OutputStreamWriter

OutputStreamWriter 类是字符流到字节流的桥梁:写入其中的字符会使用指定的字符集(没有指定就使用默认字符集)编码成字节

每次调用一个 OutputStreamWriterwrit()方法都可能导致从底层字节输出流中写入一个或多个字节。

为了实现字节到字符的有效转换,可以从基础流中提取比满足当前读取操作所需的更多字节。为了获得最高效率,请考虑在 BufferedReader 中包装OutputStreamWriter

InputStreamReader常用API

方法 描述
int read() 读取单个字符
int read(char[] cbuf, int offset, int length) 将字符读入数组
int read(CharBuffer target) 将字符读入字符缓冲区
boolean ready() 判断流是否已准备好被读取
void close() 关闭流

OutputStreamWriter常用API

方法 描述
void write(int c) 写入单个字符
void write(char[] cbuf, int off, int len) 写入字符数组
void write(String str, int off, int len) 写入字符串
void write(String str) 写入字符串
void flush() 刷新流
void close() 关闭流