В этом уроке мы научимся читать файл или ввод с клавиатуры в 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 по умолчанию. Также мы научились читать из файла и системной консоли.