📜  Java Reader类

📅  最后修改于: 2020-09-26 15:22:29             🧑  作者: Mango

在本教程中,我们将通过一个示例学习Java Reader,其子类及其方法。

java.io包的Reader类是一个抽象超类,它代表字符流。

由于Reader是抽象类,因此它本身没有用。但是,其子类可用于读取数据。


读者的子类

为了使用Reader的功能,我们可以使用其子类。他们之中有一些是:

  • 缓冲读取器
  • InputStreamReader
  • 文件阅读器
  • 字符串阅读器

Subclasses of Java Reader are BufferedReader, InputStreamReader, FileReader and StringReader.

在下一个教程中,我们将学习所有这些子类。


创建读者

为了创建Reader ,我们必须首先导入java.io.Reader包。导入包后,就可以创建阅读器。

// Creates a Reader
Reader input = new FileReader();

在这里,我们使用FileReader类创建了一个阅读器。这是因为Reader是一个抽象类。因此,我们无法创建Reader的对象。

注意 :我们还可以从Reader其他子类创建读者。


读者方法

Reader类提供了由其子类实现的不同方法。以下是一些常用方法:

  • ready() -检查阅读器是否准备好阅读
  • read(char[] array) -从流中读取字符并将其存储在指定的数组中
  • read(char[] array, int start, int length) -从流中读取等于长度的字符数,并从头开始存储在指定的数组中
  • mark() -标记流中已读取数据的位置
  • reset() -将控件返回到流中设置标记的点
  • skip() -从流中丢弃指定数量的字符

示例:使用FileReader的Reader

这是我们如何使用FileReader类实现Reader方法。

假设我们有一个名为input.txt的文件,其中包含以下内容。

This is a line of text inside the file.

让我们尝试使用FileReader ( Reader的子类)读取此文件。

import java.io.Reader;
import java.io.FileReader;

class Main {
    public static void main(String[] args) {

        // Creates an array of character
        char[] array = new char[100];

        try {
            // Creates a reader using the FileReader
            Reader input = new FileReader("input.txt");

            // Checks if reader is ready 
            System.out.println("Is there data in the stream?  " + input.ready());

            // Reads characters
            input.read(array);
            System.out.println("Data in the stream:");
            System.out.println(array);

            // Closes the reader
            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类创建了一个阅读器。阅读器与文件input.txt链接。

Reader input = new FileReader("input.txt");

为了从input.txt文件读取数据,我们已经实现了这些方法。

input.read();       // to read data from the reader
input.close();      // to close the reader

要了解更多信息,请访问Java Reader(Java官方文档)。