Java Reader 类

在本教程中,我们将通过一个示例了解Java Reader、它的子类和它的方法。

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

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

Reader子类

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

Java Reader的子类是BufferedReader,InputStreamReader,FileReader和StringReader。

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

创建Reader

为了创建一个Reader,我们必须首先导入java.io.Reader包。导入软件包后,就可以创建Reader。

//创建ReaderReaderinput=newFileReader();

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

注意:我们还可以从的其他子类创建ReaderReader。

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的文件,其中包含以下内容。

Thisisalineoftextinsidethefile.

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

importjava.io.Reader;importjava.io.FileReader;classMain{publicstaticvoidmain(String[]args){//创建一个字符数组char[]array=newchar[100];try{//使用FileReader创建ReaderReaderinput=newFileReader("input.txt");//检查Reader是否准备就绪System.out.println("流中有数据吗?"+input.ready());//读取字符input.read(array);System.out.println("流中的数据:");System.out.println(array);//关闭readerinput.close();}catch(Exceptione){e.getStackTrace();}}}

输出结果

流中有数据吗?true流中的数据:Thisisalineoftextinsidethefile.

在上面的示例中,我们使用FileReader类创建了一个读取器。Reader与文件input.txt链接。

Readerinput=newFileReader("input.txt");

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

input.read();//从reader读取数据input.close();//关闭reader
编辑于2024-05-20 15:22