Читає текст із потоку введення символів, буферизуючи символи, щоб забезпечити ефективне читання символів, масивів і рядків. Можна вказати розмір буфера або використовувати стандартний розмір. Значення за замовчуванням досить велике для більшості цілей. Загалом, кожен запит на читання, зроблений Reader, викликає відповідний запит на читання основного потоку символів або байтів. Тому доцільно обернути BufferedReader навколо будь-якого Reader, чиї операції read() можуть бути дорогими, наприклад FileReaders і InputStreamReaders. Програми, які використовують DataInputStreams для введення тексту, можна локалізувати, замінивши кожну з них DataInputStream з відповідним BufferedReader .
Конструктори класу BufferedReader
| Конструктор | Дія виконана |
|---|---|
| BufferedReader(Reader in) | Створює буферний потік введення символів, який використовує вхідний буфер стандартного розміру |
| BufferedReader(Reader in, int sz) | Створює буферний потік введення символів, який використовує вхідний буфер указаного розміру. |
Методи класу BufferedReader
| Назва методу | Дія |
|---|---|
| закрити() | Закриває потік і звільняє всі системні ресурси, пов’язані з ним. Після закриття потоку подальші виклики read(), ready(), mark(), reset() або skip() викличуть виключення IOException. Закриття раніше закритого потоку не має ефекту. |
| позначка() | Позначає поточну позицію в потоці. Подальші виклики reset() намагатимуться перемістити потік до цієї точки. |
| markSupported() | Повідомляє, чи підтримує цей потік операцію mark(), що він і підтримує. |
| читати() | Читає один символ. |
| read(char[] cbuf, int off, int len) | Читає символи в частину масиву. Цей метод реалізує загальний контракт відповідного методу читання класу Reader. Як додаткову зручність, він намагається прочитати якомога більше символів, багаторазово викликаючи метод читання основного потоку. |
| readLine() | Читає рядок тексту. Вважається, що рядок завершується будь-яким з переведення рядка (‘ ’), повернення каретки (‘ ’) або повернення каретки, за яким одразу йде переведення рядка. |
| готовий() | Повідомляє, чи цей потік готовий до читання. |
| reset() | Скидає потік до останньої позначки. |
| пропустити (довгий) | Пропускає символи. |
Реалізація: Вміст у файлі такий:
This is first line this is second line>
приклад
винятки java
Java
база даних кислотних властивостей
// Java Program to Illustrate BufferedReader Class> // Via Its Methods> > // Importing required classes> import> java.io.BufferedReader;> import> java.io.FileReader;> import> java.io.IOException;> > // Class> class> GFG {> > >// Main driver method> >public> static> void> main(String[] args)> >throws> IOException> >{> > >// Creating object of FileReader and BufferedReader> >// class> >FileReader fr =>new> FileReader(>'file.txt'>);> >BufferedReader br =>new> BufferedReader(fr);> > >char> c[] =>new> char>[>20>];> > >// Illustrating markSupported() method> >if> (br.markSupported()) {> > >// Print statement> >System.out.println(> >'mark() method is supported'>);> > >// Illustrating mark method> >br.mark(>100>);> >}> > >// File Contents is as follows:> >// This is first line> >// this is second line> > >// Skipping 8 characters> >br.skip(>8>);> > >// Illustrating ready() method> >if> (br.ready()) {> > >// Illustrating readLine() method> >System.out.println(br.readLine());> > >// Illustrating read(char c[],int off,int len)> >br.read(c);> > >for> (>int> i =>0>; i <>20>; i++) {> >System.out.print(c[i]);> >}> > >System.out.println();> > >// Illustrating reset() method> >br.reset();> >for> (>int> i =>0>; i <>8>; i++) {> > >// Illustrating read() method> >System.out.print((>char>)br.read());> >}> >}> >}> }> |
>
видалити файл в java
>
Вихід:
фрейм tkinter
mark() method is supported first line this is second line This is>