Java-класс BufferedReader
Класс BufferedReader в Java
В этом руководстве мы узнаем о Java BufferedReader и его методах с помощью примеров.
BufferedReader
класс java.io
package можно использовать с другими программами чтения для более эффективного чтения данных (в символах).
Он расширяет абстрактный класс Reader
.
" "
<час>Работа BufferedReader
BufferedReader
поддерживает внутренний буфер из 8192 символов .
Во время операции чтения в BufferedReader
, часть символов считывается с диска и сохраняется во внутреннем буфере. А из внутреннего буфера символы считываются по отдельности.
Следовательно, количество обращений к диску уменьшается. Вот почему чтение символов происходит быстрее при использовании BufferedReader
. .
Создать BufferedReader
Чтобы создать BufferedReader
, мы должны импортировать java.io.BuferedReader
пакет первый. После того, как мы импортируем пакет, мы можем создать средство чтения следующим образом.
// Creates a FileReader
FileReader file = new FileReader(String file);
// Creates a BufferedReader
BufferedReader buffer = new BufferedReader(file);
В приведенном выше примере мы создали BufferedReader
названный буфер с FileReader
названный файл .
Здесь внутренний буфер BufferedReader
имеет размер по умолчанию 8192 символа. Однако мы также можем указать размер внутреннего буфера.
// Creates a BufferdReader with specified size internal buffer
BufferedReader buffer = new BufferedReader(file, int size);
Буфер поможет быстрее читать символы из файлов.
<час>Методы BufferedReader
BufferedReader
класс предоставляет реализации для различных методов, присутствующих в 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.
Попробуем прочитать файл с помощью BufferedReader
.
import java.io.FileReader;
import java.io.BufferedReader;
class Main {
public static void main(String[] args) {
// Creates an array of character
char[] array = new char[100];
try {
// Creates a FileReader
FileReader file = new FileReader("input.txt");
// Creates a BufferedReader
BufferedReader input = new BufferedReader(file);
// Reads characters
input.read(array);
System.out.println("Data in the file: ");
System.out.println(array);
// Closes the reader
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Вывод
Data in the file: This is a line of text inside the file.
В приведенном выше примере мы создали буферизованный считыватель с именем input. . Буферизованный ридер связан с input.txt файл.
FileReader file = new FileReader("input.txt");
BufferedReader input = new BufferedReader(file);
Здесь мы использовали read()
метод для чтения массива символов из внутреннего буфера буферизованного считывателя.
Метод skip()
Чтобы отбросить и пропустить указанное количество символов, мы можем использовать skip()
метод. Например,
import java.io.FileReader;
import java.io.BufferedReader;
public class Main {
public static void main(String args[]) {
// Creates an array of characters
char[] array = new char[100];
try {
// Suppose, the input.txt file contains the following text
// This is a line of text inside the file.
FileReader file = new FileReader("input.txt");
// Creates a BufferedReader
BufferedReader input = new BufferedReader(file);
// Skips the 5 characters
input.skip(5);
// Reads the characters
input.read(array);
System.out.println("Data after skipping 5 characters:");
System.out.println(array);
// closes the reader
input.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
Вывод
Data after skipping 5 characters: is a line of text inside the file.
В приведенном выше примере мы использовали skip()
способ пропустить 5 символов из программы чтения файлов. Следовательно, символы 'T'
, 'h'
, 'i'
, 's'
и ' '
пропускаются из исходного файла.
Метод close()
Чтобы закрыть буферизованный ридер, мы можем использовать close()
метод. Как только close()
вызывается метод, мы не можем использовать ридер для чтения данных.
Другие методы BufferedReader
Метод | Описание |
---|---|
ready() | проверяет, готова ли программа для чтения файлов к чтению |
mark() | отметить позицию в ридере, до которой были прочитаны данные |
reset() | возвращает элемент управления в ту точку в ридере, где была установлена метка |
Чтобы узнать больше, посетите Java BufferedReader (официальная документация по Java).
java