Java 中的字符流类

原文:https://www.studytonight.com/java-file-io/characterstream-classes-in-java

在本教程中,我们将在 Java 中学习关于字符流的课程。引入这些类是为了克服ByteStream 类的缺点。ByteStream 类只能处理 8 位字节,与 Unicode 字符不兼容。另一方面,字符流类用于处理 16 位 Unicode 字符。

在本文中,我们将了解一下 Java 中 CharacterStream 类的概述。在接下来的教程中,我们将详细介绍每种方法。

有两个类ReaderWriter 是所有字符流类的超类。这两个类都是抽象类,位于java.io包中。

Java Reader

这些类支持从输入流中读取 16 位字符。Reader 类是一个抽象类,因此我们不能直接使用它,但是表中给出的以下类继承了 Reader 类,并覆盖了该类的所有方法。

Reader 类的所有子类如下:

班级 描述
BufferedReader 这个类提供了从缓冲区读取字符的方法。
CharArrayReader 这个类提供了从字符数组中读取字符的方法。
FileReader 这个类提供了从文件中读取字符的方法。
FilterReader 这个类提供了从基础字符输入流中读取字符的方法。
InputStreamReader 此类提供将字节转换为字符的方法。
PipedReader 此类提供从连接的管道输出流中读取字符的方法。
StringReader 此类提供从字符串中读取字符的方法。

读者课的方法

Reader 类的所有方法见下表。

方法 描述
int read() 此方法返回输入中下一个字符的整数表示形式。如果遇到输入结束,则返回-1。
int read(char buffer[]) 此方法用于读取指定的缓冲区。它返回成功读取的字符总数。如果遇到输入结束,则返回-1。
int read(char buffer[], int loc, int nChars) 此方法用于从指定位置的缓冲区中读取指定的 nChars。它返回成功读取的字符总数。
void mark(int nchars) 此方法用于标记输入流中的当前位置,直到读取 nChars 字符。
void reset() 此方法用于将输入指针重置为先前设置的标记。
long skip(long nChars) 此方法用于从输入流中跳过指定的字符,并返回跳过的字符数。
boolean ready() 如果下一个输入请求准备好了,这个方法返回一个布尔值 true。否则,它返回 false。
void close() 此方法用于关闭输入流。但是,如果程序试图访问输入,它会生成 IOException。

Java Writer

此类用于将字符写入输出流。这些字符将采用 16 位 Unicode 格式。与 Reader 类相同,Writer 类也是一个抽象类,不能实例化。Writer 类的子类,用于在输出流中写入字符。

下表给出了 Writer 类的所有子类。

班级 描述
BufferedWriter 此类提供将字符写入缓冲区的方法。
FileWriter 这个类提供了向文件中写入字符的方法。
CharArrayWriter 此类提供将字符写入字符数组的方法。
OutpuStreamWriter 此类提供将字节转换为字符的方法。
PipedWriter 这个类提供了将字符写入管道输出流的方法。
StringWriter 此类提供将字符写入字符串的方法。

写作课的方法

下表给出了 Writer 类的方法。

方法 描述
void write() 此方法用于将数据写入输出流。
void write(int i) 此方法用于将单个字符写入输出流。
void write(char buffer[]) 此方法用于将字符数组写入输出流。
void write(char buffer [],int loc, int nChars) 此方法用于将 nChars 字符从指定位置写入字符数组。
void close () 此方法用于关闭输出流。但是,如果在关闭输出流后尝试写入输出流,则会生成 IOException。
void flush () 此方法用于刷新输出流并写入等待的缓冲字符。

结论

在教程中,我们研究了 Java 中CharacterStream 类的概述。这些类属于 java.io 包。引入这个类是为了克服ByteStream 类的缺点。ByteStream 类只能处理 8 位字节,并且与 Unicode 字符不兼容。