logo

Java Reader Class

Клас Reader в Java є абстрактний клас для читання потоків символів. Його підкласи ( FileReader BufferedReade ) забезпечують реалізації з read() як основним методом читання символів.

  • Він реалізує інтерфейс Readable, який визначає метод read(CharBuffer cb).
  • Він реалізує інтерфейс Closeable, який визначає метод close() для звільнення ресурсів.
читач_' src='//techcodeview.com/img/java/58/java-reader-class.webp' title=читач

Оголошення класу читачів

Оголошення класу Reader наведено нижче:

mvc у рамках Spring

відкритий абстрактний клас Reader реалізує Readable Closeable



приклад: Прочитайте текстовий файл символ за символом за допомогою класу Reader.

Java
import java.io.*; public class Geeks {  public static void main(String[] args)  {  try {    // Create a FileReader object which is a subclass of Reader  Reader r = new FileReader('example1.txt');  // Read one character at a time from the file  int data = r.read();  while (data != -1) {    // Convert the int to char and print  System.out.print((char)data);  data = r.read();  }  // Close the reader  r.close();  }  catch (Exception ex) {  System.out.println('An error occurred: ' + ex.getMessage());  }  } } 

Вихід:

Вихід' loading='lazy' src='//techcodeview.com/img/java/58/java-reader-class-1.webp' title=вихід

Примітка: Щоб забезпечити правильну роботу програми, створіть файл під назвою example1.txt у робочому каталозі.

Додайте наступний вміст до файлу або будь-який текст.

зміна рядка в c

Привіт, ласкаво просимо до Geeks for Geeks

Збережіть файл і запустіть програму. Програма прочитає та відобразить вміст example1.txtяк вихід.

Конструктори класу Reader

Існує два конструктори, які використовуються з Java Reader Class, як зазначено нижче:

  • захищений Reader(): Створює новий зчитувач потоку символів, критичні розділи якого синхронізуватимуться на самому зчитувачі.
  • захищений Reader (блокування об'єктів) : створює новий засіб читання потоку символів, критичні розділи якого синхронізуватимуться на заданому об’єкті.

Методи Java Reader Class

методопис
абстрактна порожнеча close() Закриває потік і звільняє ресурси.
void mark(int readAheadLimit) Позначає поточну позицію в потоці.
логічне значення markSupported() Перевіряє, чи підтримуються операції позначення/скидання.
int read() Читає один символ із потоку. Повертає -1, якщо досягнуто кінця.
int read(char[] cbuf) Зчитує кілька символів у масив.
abstract int read(char[] cbuf int off int len) Зчитує частину масиву, починаючи зі зсуву off для довжини len.
int read(CharBuffer target) Читає символи в об’єкт CharBuffer.
void reset() Скидає потік до останньої позиції позначки.
довгий пропуск (довгий n) Пропускає вказану кількість символів.

приклад: Наведена нижче програма демонструє роботу різних функцій класу Reader у Java.

Java
import java.io.*; import java.nio.CharBuffer; import java.util.Arrays; public class Geeks {  public static void main(String[] args)  throws IOException  {  // Open a file reader  Reader r = new FileReader('file.txt');  PrintStream out = System.out;  // Create a character array and CharBuffer  char[] buffer = new char[10];  CharBuffer charBuffer = CharBuffer.wrap(buffer);  // Check if the reader supports marking  if (r.markSupported()) {  r.mark(100); // Mark the current position  out.println('mark method is supported');  }  // Skip 5 characters in the stream  r.skip(5);  // Check if the stream is ready to read  if (r.ready()) {  // Read 10 characters into the buffer  r.read(buffer 0 10);  out.println('Buffer after reading 10 chars: '  + Arrays.toString(buffer));  // Read characters into the CharBuffer  r.read(charBuffer);  out.println(  'CharBuffer contents: '  + Arrays.toString(charBuffer.array()));  // Read a single character  out.println('Next character: '  + (char)r.read());  }  // Close the reader  r.close();  } } 

Вихід:

підрядок у java
Вихід' loading='lazy' src='//techcodeview.com/img/java/58/java-reader-class-2.webp' title=Вихід

Проведення читацьких занять

Деякі з реалізацій класів Reader у Java згадуються нижче:

  • BufferedReader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • StringReader
Створіть вікторину