English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы будем изучать Java FileReader и его методы с помощью примеров.
Класс FileReader пакета java.io позволяет читать данные из файла (в виде символов).
он наследуется от класса InputStreamReader.
Прежде чем изучать FileReader, убедитесь, что вы понимаетеJava файл.
Чтобы создать файлового читателя,我们必须 сначала импортировать пакет java.io.FileReader. После импорта пакета, вот метод создания файлового читателя.
1. Использование имени файла
FileReader input = new FileReader(String name);
Здесь мы создаем файлового читателя, который будет связан с указанным именем файла.
2. Использование объекта файла
FileReader input = new FileReader(File fileObj);
Здесь мы создаем файлового читателя, который будет связан с файлом, указанным объектом файла.
В предыдущем примере данные в файле хранятся с использованием некоторых mặc định кодировок символов.
Но, начиная с 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("Данные в файле:"); System.out.println(array); // Закрываем reader input.close(); } catch(Exception e) { e.getStackTrace(); } } }
Результат вывода
Данные в файле: 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(); } } }
Результат вывода
Кодировка символов input1: Cp1252 Кодировка символов input2: UTF8
В примере выше мы создали 2 файловых читателя, названных input1 и input2.
input1 не указывает кодировку символов. Поэтому метод getEncoding() возвращает defaultManager кодировки символов.
input2 указывает кодировку символовUTF8. Поэтому метод getEncoding() возвращает указанную кодировку символов.
Внимание: Мы уже использовали метод Charset.forName() для указания типа кодировки символов.
Чтобы закрыть файловый читатель, мы можем использовать метод close(). После вызова метода close() мы не сможем использовать читатель для чтения данных.
Метод | Описание |
---|---|
ready() | Проверить, готов ли файловый читатель к чтению |
mark() | Маркировать положение уже прочитанных данных в файловом читателе |
reset() | Сброс читателя, возвращение к маркеру, установленному в читателе |