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 е дадена по-долу:

разделител java

публичен абстрактен клас 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 в работната директория.

Добавете следното съдържание към файла или можете да добавите произволен текст.

10 1 милион

Здравейте, добре дошли в Geeks for Geeks

Запазете файла и стартирайте програмата. Програмата ще прочете и покаже съдържанието на example1.txtкато изход.

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

Има два конструктора, използвани с Java Reader Class, както е споменато по-долу:

подниз в bash
  • защитен четец(): Създава нов четец на символен поток, чиито критични секции ще се синхронизират в самия четец.
  • защитен четец (заключване на обект) : Създава нов четец на символен поток, чиито критични секции ще се синхронизират на дадения обект.

Методи на Java Reader Class

МетодОписание
абстрактно празно затваряне () Затваря потока и освобождава ресурси.
void mark (int readAheadLimit) Маркира текущата позиция в потока.
булево markSupported() Проверява дали операциите за маркиране/нулиране се поддържат.
int read() Чете един символ от потока. Връща -1, ако краят е достигнат.
int read(char[] cbuf) Чете няколко знака в масив.
abstract int read(char[] cbuf int off int len) Чете част от масива, започвайки от отместване за дължина len.
int read(цел на CharBuffer) Чете знаци в обект 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();  } } 

Изход:

Изход' loading='lazy' src='//techcodeview.com/img/java/58/java-reader-class-2.webp' title=Изход

Внедряване на класове за читатели

Някои от реализациите на класове Reader в Java са споменати по-долу:

  • BufferedReader
  • CharArrayReader
  • FilterReader
  • InputStreamReader
  • PipedReader
  • StringReader
Създаване на тест