English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderemos Java FileReader y sus métodos con la ayuda de ejemplos.
La clase FileReader del paquete java.io se puede usar para leer datos de un archivo (en forma de caracteres).
hereda de la clase InputSreamReader.
Antes de aprender FileReader, asegúrate de que entiendasJava文件。
Para crear un lector de archivos, primero debemos importar el paquete java.io.FileReader. Después de importar el paquete, aquí está el método para crear el lector de archivos.
1.usando el nombre del archivo
FileReader input = new FileReader(String name);
Aquí, creamos un lector de archivos que se conectará al nombre del archivo especificado.
2.usando el objeto del archivo
FileReader input = new FileReader(File fileObj);
Aquí, creamos un lector de archivos que se conectará al archivo especificado por el objeto de archivo.
En el ejemplo anterior, los datos del archivo se almacenan utilizando alguna codificación de caracteres predeterminada.
pero, debido a Java 11también podemos especificar el tipo de codificación de caracteres en el archivo (UTF-8oUTF-16)
FileReader input = new FileReader(String file, Charset cs);
Aquí, utilizamos la clase Charset para especificar la codificación de caracteres del lector de archivos.
La clase FileReader proporciona implementaciones de diferentes métodos que existen en la clase Reader.
read() - lee un solo carácter desde el lector
read(char[] array) - lee caracteres desde el lector y los almacena en el array especificado
read(char[] array, int start, int length) - lee desde el lector el número de caracteres igual a length y los almacena en el array especificado desde la posición start
Por ejemplo, supongamos que tenemos un archivo llamadoinput.txtdel archivo que contiene el siguiente contenido.
Esta es una línea de texto dentro del archivo.
Vamos a intentar usar el lector de archivo FileReader.
import java.io.FileReader; class Main { public static void main(String[] args) { //crea un array de caracteres char[] array = new char[100]; try { //crea un lector con FileReader FileReader input = new FileReader("input.txt"); //lectura de caracteres input.read(array); System.out.println("Los datos en el archivo: "); System.out.println(array); // cerrar reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
输出结果
Los datos en el archivo: Esta es una línea de texto dentro del archivo.
En el ejemplo anterior, creamos un lector de archivo llamado input. El lector de archivo está asociado con el archivoinput.txtenlace.
FileInputStream input = new FileInputStream("input.txt");
Para leer datos del archivo, hemos utilizado el método read().
el método getEncoding() se puede usar para obtener el tipo de codificación utilizado para almacenar datos en el archivo. Por ejemplo,
import java.io.FileReader; import java.nio.charset.Charset; class Main { public static void main(String[] args) { try { //crea un FileReader con la codificación predeterminada FileReader input1 = new FileReader("input.txt"); //crea un FileReader con la codificación especificada FileReader input2 = new FileReader("input.txt", Charset.forName("UTF8")); //devuelve la codificación del lector de archivo System.out.println("input1la codificación de caracteres: " + input1.getEncoding()); System.out.println("input2la codificación de caracteres: " + input2.getEncoding()); //cerrar reader input1.close(); input2.close(); } catch(Exception e) { e.getStackTrace(); } } }
输出结果
input1的字符编码: Cp1252 input2的字符编码: UTF8
在上面的示例中,我们创建了2个文件阅读器,分别名为input1和input2。
input1没有指定字符编码。因此,getEncoding()方法返回默认字符编码。
input2指定字符编码UTF8。因此,getEncoding()方法返回指定的字符编码。
注意:我们已经使用该Charset.forName()方法指定字符编码的类型。
要关闭文件阅读器,我们可以使用close()方法。调用close()方法后,我们将无法使用读取器读取数据。
方法 | 描述 |
---|---|
ready() | 检查文件阅读器是否准备好阅读 |
mark() | 标记文件读取器中已读取数据的位置 |
reset() | 重置阅读器,返回到阅读器中设置标记的位置 |