Java Reader 类
提示
- Reader 类概述:
Reader
是java.io
包中的一个抽象类,专用于字符流读取。 - Reader 的子类:主要子类包括
BufferedReader
、InputStreamReader
、FileReader
和StringReader
。 - 常用方法:提供如
ready()
、read(char[] array)
、mark()
、reset()
和skip()
等用于读取和操作字符流的方法。
java.io
包中的 Reader
类是一个抽象的超类,代表字符流。
由于 Reader
是一个抽象类,它本身并不具有实用性。然而,其子类可以用来读取数据。
Reader 的子类
为了使用 Reader
的功能,我们可以使用它的子类。其中一些包括:
我们将在下一个教程中学习所有这些子类。
创建 Reader
为了创建一个 Reader
,我们首先必须导入 java.io.Reader
包。一旦我们导入了包,下面是我们如何创建 reader 的方式。
// 创建一个 Reader
Reader input = new FileReader();
这里,我们使用 FileReader
类创建了一个 reader。这是因为 Reader
是一个抽象类。因此我们不能创建 Reader
的对象。
注意:我们也可以从 Reader
的其他子类创建 reader。
Reader 的方法
Reader
类提供了不同的方法,这些方法由其子类实现。这里是一些常用的方法:
ready()
- 检查 reader 是否准备好被读取read(char[] array)
- 从流中读取字符并存储在指定数组中read(char[] array, int start, int length)
- 从流中读取等于length
的字符数并从start
开始存储在指定数组中mark()
- 标记流中已读取数据的位置reset()
- 将控制返回到流中标记设置的点skip()
- 从流中丢弃指定数量的字符
示例:使用 FileReader 的 Reader
这里是我们如何使用 FileReader
类实现 Reader
。
假设我们有一个名为 input.txt 的文件,内容如下。
这是文件中的一行文本。
让我们尝试使用 FileReader
(Reader
的一个子类)读取这个文件。
import java.io.Reader;
import java.io.FileReader;
class Main {
public static void main(String[] args) {
// 创建一个字符数组
char[] array = new char[100];
try {
// 使用 FileReader 创建一个 reader
Reader input = new FileReader("input.txt");
// 检查 reader 是否准备好
System.out.println("流中是否有数据? " + input.ready());
// 读取字符
input.read(array);
System.out.println("流中的数据:");
System.out.println(array);
// 关闭 reader
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
输出
流中是否有数据? true
流中的数据:
这是文件中的一行文本。
在上面的示例中,我们使用 FileReader
类创建了一个 reader。这个 reader 与文件 input.txt 链接。
Reader input = new FileReader("input.txt");
为了从 input.txt 文件中读取数据,我们实现了这些方法。
input.read(); // 从 reader 中读取数据
input.close(); // 关闭 reader
要了解更多,请访问 Java Reader(官方 Java 文档)。