English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,我们将借助示例学习Java FileReader及其方法。
java.io包的FileReader类可用于从文件中读取数据(以字符为单位)。
它继承了InputSreamReader类。
在学习FileReader之前,请确保您了解File Java.
为了创建一个文件阅读器,我们必须首先导入java.io.FileReader包。导入程序包后,这里是创建文件阅读器的方法。
1.使用文件名
FileReader input = new FileReader(String name);
在这里,我们创建了一个文件阅读器,该文件阅读器将链接到所指定的文件名。
2.使用文件的对象
FileReader input = new FileReader(File fileObj);
在这里,我们创建了一个文件读取器,该文件读取器将链接到文件对象所指定的文件。
在上面的示例中,文件中的数据使用某些默认字符编码存储。
但是,由于Java 11,我们也可以在文件中指定字符编码的类型(UTF-8或UTF-16)
FileReader input = new FileReader(String file, Charset cs);
在这里,我们使用Charset类来指定文件阅读器的字符编码。
FileReader类提供Reader类中存在的不同方法的实现。
read() - 从阅读器读取单个字符
read(char[] array) - 从阅读器读取字符并将其存储在指定的数组中
read(char[] array, int start, int length) - 从读取器读取等于length的字符数,并从位置start开始存储在指定的数组中
例如,假设我们有一个名为input.txt的文件,其中包含以下内容。
This is a line of text inside the file.
尝试使用读取文件FileReader。
import java.io.FileReader; class Main { public static void main(String[] args) { //创建一个字符数组 char[] array = new char[100]; try { //使用FileReader创建阅读器 FileReader input = new FileReader("input.txt"); //读取字符 input.read(array); System.out.println("Data in the file:"); System.out.println(array); // 关闭 reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Risultato di output
Data in the file: This is a line of text inside the file.
在上面的示例中,我们创建了一个名为input的文件阅读器。文件阅读器与文件input.txt链接。
FileInputStream input = new FileInputStream("input.txt");
为了从文件中读取数据,我们使用了read()方法。
getEncoding()方法可用于获取用于在文件中存储数据的编码类型。例如,
import java.io.FileReader; import java.nio.charset.Charset; class Main { public static void main(String[] args) { try { //使用默认编码创建一个FileReader FileReader input1 = new FileReader("input.txt"); //创建一个FileReader指定编码 FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); //返回文件阅读器的字符编码 System.out.println("input1的字符编码: " + input1.getEncoding()); System.out.println("input2的字符编码: " + input2.getEncoding()); //关闭 reader input1.close(); input2.close(); } catch(Exception e) { e.getStackTrace(); } } }
Risultato di output
Codifica dei caratteri di input1: Cp1252 Codifica dei caratteri di input2: UTF8
Nell'esempio sopra, abbiamo creato 2 lettori di file, rispettivamente chiamati input1 e input2.
input1 non specifica la codifica dei caratteri. Pertanto, il metodo getEncoding() restituisce la codifica dei caratteri predefinita.
input2 specifica la codifica dei caratteriUTF8. Pertanto, il metodo getEncoding() restituisce la codifica dei caratteri specificata.
Attenzione: Abbiamo utilizzato il metodo Charset.forName() per specificare il tipo di codifica dei caratteri.
Per chiudere il lettore di file, possiamo utilizzare il metodo close(). Dopo aver chiamato il metodo close(), non saremo in grado di utilizzare il lettore per leggere i dati.
Metodo | Descrizione |
---|---|
ready() | Controlla se il lettore di file è pronto per la lettura |
mark() | Segna la posizione dei dati letti dal lettore di file |
reset() | Ripristina il lettore, tornando alla posizione del segnaposto impostato nel lettore |