자바 리더 클래스
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
- 문자열 판독기