자바 리더 클래스

자바 리더 클래스

Java의 Reader 클래스는 추상 수업 문자 스트림을 읽는 데 사용됩니다. 하위 클래스( 파일리더 버퍼링된 읽기 ) 문자를 읽는 주요 방법인 read() 구현을 제공합니다.

  • read(CharBuffer cb) 메소드를 정의하는 Readable 인터페이스를 구현합니다.
  • 리소스를 해제하기 위해 close() 메서드를 정의하는 Closeable 인터페이스를 구현합니다.
리더_리더

독자 클래스 선언

Reader 클래스 선언은 다음과 같습니다.

공개 추상 클래스 Reader는 읽기 가능 닫기 가능을 구현합니다.

예: 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  ());      }      }   }   

출력 :

산출산출

메모: 프로그램이 올바르게 실행되도록 하려면 작업 디렉터리에 example1.txt라는 파일을 만듭니다.

파일에 다음 내용을 추가하거나 텍스트를 추가할 수 있습니다.

안녕하세요 Geeks for Geeks에 오신 것을 환영합니다.

파일을 저장하고 프로그램을 실행해 보세요. 프로그램은 example1의 내용을 읽고 표시합니다. .txt 출력으로.

Reader 클래스의 생성자

아래에 언급된 것처럼 Java Reader 클래스와 함께 사용되는 두 가지 생성자가 있습니다.

  • 보호된 리더(): 중요한 섹션이 판독기 자체에서 동기화되는 새 문자 스트림 판독기를 만듭니다.
  • 보호된 리더(개체 잠금) : 지정된 개체에서 임계 섹션이 동기화되는 새 문자 스트림 판독기를 만듭니다.

Java Reader 클래스의 메소드

방법 설명
추상 무효 닫기() 스트림을 닫고 리소스를 해제합니다.
무효 표시(int readAheadLimit) 스트림의 현재 위치를 표시합니다.
불리언 마크지원() 표시/재설정 작업이 지원되는지 확인합니다.
정수 읽기() 스트림에서 단일 문자를 읽습니다. 끝에 도달하면 -1을 반환합니다.
int 읽기(char[] cbuf) 여러 문자를 배열로 읽어옵니다.
추상 int 읽기(char[] cbuf int off int len) 길이 len에 대해 오프셋 off에서 시작하여 배열의 일부를 읽습니다.
int read(CharBuffer 대상) CharBuffer 개체로 문자를 읽습니다.
무효 재설정() 스트림을 가장 최근 표시 위치로 재설정합니다.
긴 건너뛰기(긴 n) 지정된 문자 수를 건너뜁니다.

예: 아래 프로그램은 Java에서 Reader 클래스의 다양한 기능 작동을 보여줍니다.

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에서 Reader 클래스의 구현 중 일부는 다음과 같습니다.

  • 버퍼링된 리더
  • CharArrayReader
  • 필터리더
  • 입력스트림리더
  • PipedReader
  • 문자열 판독기
퀴즈 만들기