Java FileReader 类

在本教程中,我们将借助示例学习Java FileReader及其方法。

java.io包的FileReader类可用于从文件中读取数据(以字符为单位)。

它继承了InputSreamReader类。

FileReader是InputStreamReader的子类,而InputStreamReader是Java Reader的子类。

在学习之前FileReader,请确保您了解Java文件

创建一个FileReader

为了创建一个文件阅读器,我们必须首先导入java.io.FileReader包。导入程序包后,这里是创建文件阅读器的方法。

1.使用文件名

FileReaderinput=newFileReader(Stringname);

在这里,我们创建了一个文件阅读器,该文件阅读器将链接到所指定的文件名。

2.使用文件的对象

FileReaderinput=newFileReader(FilefileObj);

在这里,我们创建了一个文件读取器,该文件读取器将链接到文件对象所指定的文件。

在上面的示例中,文件中的数据使用某些默认字符编码存储。

但是,由于Java 11,我们也可以在文件中指定字符编码的类型(UTF-8UTF-16)。

FileReaderinput=newFileReader(Stringfile,Charsetcs);

在这里,我们使用Charset类来指定文件阅读器的字符编码。

FileReader的方法

FileReader类提供Reader类中存在的不同方法的实现。

read()方法

  • read() - 从阅读器读取单个字符

  • read(char[] array) - 从阅读器读取字符并将其存储在指定的数组中

  • read(char[] array, int start, int length) - 从读取器读取等于length的字符数,并从位置start开始存储在指定的数组中

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

Thisisalineoftextinsidethefile.

让我们尝试使用读取文件FileReader。

importjava.io.FileReader;classMain{publicstaticvoidmain(String[]args){//创建一个字符数组char[]array=newchar[100];try{//使用FileReader创建阅读器FileReaderinput=newFileReader("input.txt");//读取字符input.read(array);System.out.println("Datainthefile:");System.out.println(array);//关闭readerinput.close();}catch(Exceptione){e.getStackTrace();}}}

输出结果

Datainthefile:Thisisalineoftextinsidethefile.

在上面的示例中,我们创建了一个名为input的文件阅读器。文件阅读器与文件input.txt链接。

FileInputStreaminput=newFileInputStream("input.txt");

为了从文件中读取数据,我们使用了read()方法。

getEncoding()方法

getEncoding()方法可用于获取用于在文件中存储数据的编码类型。例如,

importjava.io.FileReader;importjava.nio.charset.Charset;classMain{publicstaticvoidmain(String[]args){try{//使用默认编码创建一个FileReaderFileReaderinput1=newFileReader("input.txt");//创建一个FileReader指定编码FileReaderinput2=newFileReader("input.txt",Charset.forName("UTF8"));//返回文件阅读器的字符编码System.out.println("input1的字符编码:"+input1.getEncoding());System.out.println("input2的字符编码:"+input2.getEncoding());//关闭readerinput1.close();input2.close();}catch(Exceptione){e.getStackTrace();}}}

输出结果

input1的字符编码:Cp1252input2的字符编码:UTF8

在上面的示例中,我们创建了2个文件阅读器,分别名为input1和input2。

  • input1没有指定字符编码。因此,getEncoding()方法返回默认字符编码。

  • input2指定字符编码UTF8。因此,getEncoding()方法返回指定的字符编码。

注意:我们已经使用该Charset.forName()方法指定字符编码的类型。

close()方法

要关闭文件阅读器,我们可以使用close()方法。调用close()方法后,我们将无法使用读取器读取数据。

FileReader的其他方法

方法描述
ready()检查文件阅读器是否准备好阅读
mark()标记文件读取器中已读取数据的位置
reset()重置阅读器,返回到阅读器中设置标记的位置
编辑于2024-05-20 12:34