Reader
Reader 是 Java IO 中所有 Reader 的基类。Reader 与 InputStream 类似,不同点在于,Reader 基于字符而非基于字节。换句话说,Reader 用于读取文本,而 InputStream 用于读取原始字节。
请记住,Java 内部使用 UTF-8 编码表示字符串。输入流中一个字节可能并不等同于一个 UTF-8 字符。如果你从输入流中以字节为单位读取 UTF-8 编码文本,并且尝试将读取到的字节转换成字符,你可能读不到预期结果。
read() 方法返回一个包含了读取到的字符内容的 int 类型变量。如果返回 -1 ,表示 Reader 已经没有剩余可读字符,此时可以关闭 Reader。-1 是一个 int 类型,不是 byte 或者 char 类型,这是不一样的。
你通常会使用 Reader 的子类,而不是直接使用 Reader。Reader 的子类包括 InputStreamReader,CharArrayReader,FileReader 等等。
Reader 通常与文件、字符数组、网络等数据源相关联。
Writre
Writer 是 Java IO 中所有 Writer 的基类。与 Reader 和 InputStream 关系相似,Writre 基于字符而非字节,Writer 用于写入文本,OutputStream用于写入字节。
同样,你最好使用 Writer 的子类,不需要直接使用 Writer,因为子类的实现更加明确,更能表现你的意图。常用的子类包括 OutputWriter、CharArrayWriter、FileWriter 等。
Writer 的 Write(int c) 方法,会将传入参数的低16位写入到 Writer 中,忽略高 16 位。
本文介绍了Java IO包中的Reader和Writer基类及其用途。详细解释了它们如何用于处理字符流,与字节流的区别,以及如何使用这些类来读取和写入文本。此外还列举了一些常用的子类。
1068

被折叠的 条评论
为什么被折叠?



