1 java.io.Reader
Reader 是所有字符输入的基类,用于读取文本,不同于 java.io.InputStream
读取原始字节。
Java 内部使用 UTF-8 编码标识字符串,所以输入流中一个字节可能并不等同于一个 UTF-8 字符(参看 常见编码占用字节数)
常用方法有:
(1) abstract void close()
关闭流并释放与此相关的系统资源。
(2) int read()
读取单个字符。返回一个介于 0 ~ 65535 间的整形值,如果返回 -1 表明没有剩余可读取的字符,可以关闭 Reader。
(3) int read(char[] cbuf)
读取字符到一个指定数组,返回读取的字符总数。
(4) abstract int read(char[] cbuf, int off, int len)
读取字符到一个指定数组的指定位置,off
是存储所读取字符的起始位置,len
读取的最大字符数量。
(5) int read(CharBuffer target)
尝试读取字符到指定的字符缓存中。参看 Java NIO 资料。
因为 Reader 是一个 abstract
类,关于其使用在后续 InputStreamReader
和 FileReader
说明中介绍。
2 java.io.Writer
Writer 是所有字符输出的基类,用于写入文本,不同于 java.io.OutputStream
写入原始字节。
常用方法有:
(1) Writer append(char c)
追加写入一个 16 位的字符。
(2) Writer append(CharSequence csq)
追加写入一个字符序列。
(3) Writer append(CharSequence csq, int start, int end)
追加吸入一个字符序列的一部分。
(4) abstract void close()
关闭流,强制将已写入文本记录在目标媒介中。
(5) abstract void flush()
如果流已在缓存中保存了部分字符,则立即将这些字符写入目标媒介。
(6) void write(char[] cbuf)
写入一个字符数组。
(7) abstract void write(char[] cbuf, int off, int len)
写入到字符数组的指定位置。
(8) void write(int c)
写入单个字符。
(9) void write(String str)
写入字符串。
(10) void write(String str, int off, int len)
写入字符串的指定位置。