📜  Java Reader类(1)

📅  最后修改于: 2023-12-03 15:31:31.863000             🧑  作者: Mango

Java Reader类介绍

Java Reader类是一个抽象类,用于读取字符流。它是所有字符输入流的超类,提供了读取字符流的通用接口。

读取字符流的方法

Reader类提供了多种方法以读取字符流,下面是其中一些方法:

int read() throws IOException

读取一个单个字符,并将该字符作为整数返回。

int read(char[] cbuf) throws IOException

读取将输入流中的字符读入数组cbuf中,并返回读取的字符数。

int read(char[] cbuf, int offset, int length) throws IOException

从输入流中读取最多length个字符,并将它们存储到数组cbuf的偏移量offset处。

long skip(long n) throws IOException

跳过并丢弃输入流中n个字符。

boolean ready() throws IOException

返回输入流是否准备好读取。

void close() throws IOException

关闭输入流并释放与之相关的所有系统资源。

Reader类的实现

Reader类是一个抽象类,它不能直接实例化。我们必须使用它的子类之一来实现它。

下面是一些Reader类的实现:

FileReader

使用FileReader可以读取文件中的字符流。下面是一个简单的示例:

FileReader fr = new FileReader("file.txt");
int i;
while ((i = fr.read()) != -1) {
   System.out.print((char) i);
}
fr.close();
CharArrayReader

使用CharArrayReader可以从字符数组中读取字符流。下面是一个简单的示例:

char[] chars = {'H', 'e', 'l', 'l', 'o'};
CharArrayReader cr = new CharArrayReader(chars);
int i;
while ((i = cr.read()) != -1) {
   System.out.print((char) i);
}
cr.close();
StringReader

使用StringReader可以从字符串中读取字符流。下面是一个简单的示例:

String str = "Hello";
StringReader sr = new StringReader(str);
int i;
while ((i = sr.read()) != -1) {
   System.out.print((char) i);
}
sr.close();
总结

Java Reader类提供了多种方法以读取字符流,并且其子类可以实现从不同来源获取字符流。在使用Reader类时,我们应该及时关闭输入流以释放系统资源。