Руководство по Java BufferedReader

В этом уроке мы научимся читать файл или ввод с клавиатуры в Java с помощью BufferedReader. Вы можете использовать приведенные примеры в качестве шаблона и повторно использовать/переписывать их так, как вам нужно.

1. Класс BufferedReader

BufferedReader считывает текст из потока ввода символов, буферизуя символы таким образом, чтобы обеспечить эффективное чтение символов, массивов и строк за счет минимизации количества операций ввода-вывода.

1.1 Создание BufferedReder

Чтобы использовать BufferedReader, мы должны обернуть его вокруг любого Reader, операции read() которого могут быть затратными, например FileReader и InputStreamReader.

 BufferedReader в = новый BufferedReader(новый FileReader("foo.in"));BufferedReader в = новый BufferedReader(новый InputStreamReader(System.in));

В качестве альтернативы мы можем напрямую получить ссылку BufferedReader, используя класс Files NIO.

BufferedReader reader =Files.newBufferedReader(Paths.get("/path/file"))

1.2 Настройка размера буфера

По умолчанию BufferedReader использует буфер размером 8 КБ. Мы можем изменить размер буфера при его создании, хотя размер по умолчанию подходит в большинстве случаев.

BufferedReader in = new BufferedReader(new FileReader("foo.in"), 65536); //64 KB buffer

2. Чтение файла с помощью BufferedReader

Класс FileReader используется для чтения потоков символов из файла. Для чтения потоков необработанных байтов рассмотрите возможность использования FileInputStream.

2.1 Чтение файла построчно

try(BufferedReader bufferedReader= new BufferedReader(new FileReader("/path/file"))) {String currLine;while((currLine = bufferedReader.readLine()) != null) {System.out.println(currLine);System.out.println(System.lineSeparator());}}catch(IOException e) {e.printStackTrace();}

2.2 Чтение входных данных консоли

Класс InputStreamReader используется для чтения данных из базового потока байтового ввода. Обертывание InputStreamReader в BufferedReader обеспечивает максимальную эффективность.

try(BufferedReader reader= new BufferedReader(new InputStreamReader(System.in))){System.out.println("Enter your name");String name=br.readLine();System.out.println("Welcome "+name);}catch(IOException e) {e.printStackTrace();} 

3. Заключение

В этом коротком руководстве по Java мы научились создавать и управлять экземпляром BufferedReader в Java. Мы научились настраивать размер буфера BufferedReader по умолчанию. Также мы научились читать из файла и системной консоли.

Исходный код на Github

Прокрутить вверх