Java Reader 类详细介绍以及用法详解
在本教程中,我们通过示例了解 Java Reader 类、它的子类和它的方法。
在本教程中,我们通过示例了解 Java Reader 类、它的子类和它的方法。
java.io
包中的 Reader
类的是一个表示字符输入流抽象超类。
Reader
类是一个抽象类,它定义了字符输入流的操作方法和一些公共的逻辑。它本身不能被实例化,它有很多子类分别实现了处理字符输入流的不同方案。
Reader 的子类
Reader
有很多子类,常用到包括:
我们将在后面的教程中了解所有这些子类。
创建 Reader
Reader
是一个抽象类,我们要通过它的子类创建它的实例。如下,我们使用 FileReader
类创建了 Reader
对象实例:
Reader input = new FileReader();
Reader 方法
Reader
类定义了很多需要子类实现的抽象方法。以下是一些常用的方法:
ready()
- 检查Reader
流是否准备好被读取read(char[] array)
- 从流中读取字符并存储在指定的数组中read(char[] array, int start, int length)
- 读取长度为length
字符并存储在指定数组start
开始的位置中mark()
- 标记已经读取的数据的位置reset()
- 将控制返回到流中设置标记的位置skip()
- 从流中跳过指定数量的字符
示例:使用 FileReader 读取文件
以下实例我们展示如何使用 Reader
的子类 FileReader
来读取文件的内容。
假设我们有一个文件 input.txt
内容如下:
This is a line of text inside the file.
我们使用 FileReader
读取文件内容。
import java.io.Reader;
import java.io.FileReader;
public class Main {
public static void main(String[] args) {
char[] array = new char[100];
try {
Reader input = new FileReader("input.txt");
System.out.println("Is there data in the stream? " + input.ready());
input.read(array);
System.out.println("Data in the stream: ");
System.out.println(array);
input.close();
} catch (Exception e) {
e.getStackTrace();
}
}
}
输出
Is there data in the stream? true
Data in the stream: This is a line of text inside the file.
在上面的示例中,我们使用 FileReader
类创建了一个 Reader
对象,并与文件 input.txt
关联起来。如下:
Reader input = new FileReader("input.txt");
然后我们使用 read()
方法读取数据,最后使用 close()
方法关闭了对象。
input.read();
input.close();