Java PushbackReader 클래스
그만큼 PushbackReader 클래스 Java에서는 java.io.패키지 스트림에서 문자를 읽는 데 사용됩니다. 이 클래스를 사용하면 문자를 스트림으로 다시 푸시할 수 있습니다.
PushbackReader 클래스의 특징:
- 이 클래스는 문자를 스트림으로 다시 푸시할 수 있는 버퍼를 사용합니다.
- 이 수업은 바로 사용하지 않고도 텍스트를 읽고 문자를 확인할 때 유용합니다. 캐릭터가 필요하지 않으면 뒤로 밀릴 수 있습니다.
예:
Java // Demonstrating the working // of PushbackReader import java.io.* ; public class Geeks { public static void main ( String [] args ) { String s = 'Hello World!' ; StringReader sr = new StringReader ( s ); // Create a PushbackReader with the StringReader PushbackReader pr = new PushbackReader ( sr ); try { // Read the first character int char1 = pr . read (); System . out . println ( 'Read character: ' + ( char ) char1 ); // Push this character back into the stream pr . unread ( char1 ); // Read the same character again (since we pushed it back) int char2 = pr . read (); System . out . println ( 'Read character again: ' + ( char ) char2 ); // Continue reading the next character int char3 = pr . read (); System . out . println ( 'Next character: ' + ( char ) char3 ); // Close the reader pr . close (); } catch ( IOException e ) { e . printStackTrace (); } } }
산출
Read character: H Read character again: H Next character: e
PushbackReader 클래스 선언
PushbackReader 클래스 선언은 다음과 같습니다.
공개 클래스 PushbackReader는 FilterReader를 확장합니다.
구현된 모든 인터페이스:
- 닫을 수 있음: 이 인터페이스는 리소스를 해제하는 데 사용됩니다.
- 자동 닫기 가능: 이 인터페이스를 사용하면 try-with-resources 문을 자동으로 닫을 수 있습니다.
- 읽을 수 있음: 이 인터페이스는 객체에서 데이터를 읽는 데 사용됩니다.
PushbackReader의 생성자
이 클래스는 두 개의 생성자로 구성되어 있으며 이를 통해 다양한 방법으로 이 클래스의 객체를 생성할 수 있습니다. 이 클래스에서 사용할 수 있는 생성자는 다음과 같습니다.
1. PushbackReader(리더 푸시): 이 생성자는 기본 푸시백 버퍼를 사용하여 새 PushbackReader를 만드는 데 사용됩니다.
통사론:
공개 PushbackReader(리더 푸시)
예:
Java // Demonstrating the working // of PushbackReader(Reader push) import java.io.* ; public class Geeks { public static void main ( String [] args ) { // String to be read String s = 'Hello World!' ; // Create a StringReader to read from the string StringReader sr = new StringReader ( s ); // Create a PushbackReader with the StringReader PushbackReader pr = new PushbackReader ( sr ); try { // Read and print characters int charRead ; while (( charRead = pr . read ()) != - 1 ) { System . out . print (( char ) charRead ); } // Close the PushbackReader pr . close (); } catch ( IOException e ) { e . printStackTrace (); } } }
산출
Hello World!
2. PushbackReader(리더 푸시 정수 크기): 이 생성자를 사용하면 푸시백 버퍼의 크기를 지정할 수 있습니다.
통사론:
공개 PushbackReader(리더 푸시 정수 크기)
예:
Java // Demonstrating the working // of PushbackReader(Reader push int size) import java.io.* ; public class Geeks { public static void main ( String [] args ) { // String to be read String s = 'Hello World!' ; // Create a StringReader to read from the string StringReader sr = new StringReader ( s ); // Create a PushbackReader with the StringReader // and a specified buffer size of 20 PushbackReader pr = new PushbackReader ( sr 20 ); try { // Read and print characters int charRead ; while (( charRead = pr . read ()) != - 1 ) { System . out . print (( char ) charRead ); } // Close the PushbackReader pr . close (); } catch ( IOException e ) { e . printStackTrace (); } } }
산출
Hello World!
Java PushbackReader 메서드
아래 이미지는 CharArrayWriter 클래스의 메서드를 보여줍니다.
이제 각 방법에 대해 하나씩 자세히 설명하겠습니다.
1. 읽기(): 이 방법은 스트림에서 한 번에 한 문자를 읽는 데 사용됩니다.
통사론:
공개 int 읽기()
- 매개변수: 이 메서드는 매개변수를 사용하지 않습니다.
- 반환 유형: 이 메서드는 읽은 문자를 정수로 반환하거나 스트림 끝에 도달하면 -1을 반환합니다.
2. read(char[] carray int offset int maxlen): 이 방법은 문자 덩어리를 읽는 데 사용됩니다.
통사론:
공개 int 읽기(char[] carray int offset int maxlen)
- 매개변수: 이 방법에는 아래에 나열된 세 가지 매개변수가 포함됩니다.
- char[] 캐리: 읽은 문자가 위치할 문자 배열입니다. 저장되었습니다.
- 정수 오프셋: 배열의 시작 위치입니다.
- 정수 maxlen: 읽을 수 있는 최대 문자 수입니다.
- 반환 유형: 이 메소드는 읽은 문자 수를 반환합니다.
3. 닫기(): 이 방법은 리더를 닫는 데 사용됩니다.
통사론:
공개 무효 닫기()
- 매개변수: 이 메소드는 매개변수를 사용하지 않습니다.
- 반환 유형: 이 메서드는 아무것도 반환하지 않습니다.
4. 표시(int readAheadLimit): 이 방법은 스트림의 현재 위치를 표시하는 데 사용됩니다.
통사론:
공개 무효 표시(int readAheadLimit)
- 매개변수: 이 메소드에는 마크 위치가 유효하지 않게 되기 전에 읽을 수 있는 최대 문자 수를 지정하는 하나의 매개변수 readAheadLimit가 포함되어 있습니다.
- 반환 유형: 이 메서드는 아무것도 반환하지 않습니다.
5. 건너뛰기(긴 n): 이 방법은 특정 문자 수를 건너뛰는 데 사용됩니다.
통사론:
공개 긴 건너뛰기(long n)
- 매개변수: 이 메서드에는 스트림에서 건너뛸 문자 수인 long n 매개변수가 하나 포함되어 있습니다.
- 반환 유형: 이 메서드는 건너뛴 문자 수를 반환합니다.
6. 재설정(): mark()가 호출된 위치로 돌아가기 위해 사용되는 메소드이다.
통사론:
공개 무효 재설정()
- 매개변수: 이 메소드는 매개변수를 사용하지 않습니다.
- 반환 유형: 이 메서드는 아무것도 반환하지 않습니다.
7. 마크지원(): 이 방법은 스트림이 표시를 지원하는지 여부를 알려줍니다.
통사론:
공개 부울 표시 지원()
- 매개변수: 이 메소드는 매개변수를 사용하지 않습니다.
- 반환 유형: 표시가 지원되지 않으므로 이 메서드는 false를 반환합니다.
8. 준비(): 이 메서드는 스트림을 읽을 준비가 되었는지 여부를 확인합니다.
통사론:
공개 부울 준비()
- 매개변수: 이 메소드는 매개변수를 사용하지 않습니다.
- 반환 유형: 스트림이 준비되면 이 메서드는 true를 반환합니다.
9. 읽지 않음(int c): 이 메서드는 문자를 스트림으로 다시 푸시하는 데 사용됩니다.
통사론:
공개 무효 읽지 않음(int c)
- 매개변수: 이 메소드는 스트림으로 다시 푸시될 문자인 c라는 단일 매개변수를 사용합니다.
- 반환 유형: 이 메서드는 아무것도 반환하지 않습니다.
10. 읽지 않음(char[] 캐리): 이 메서드는 문자 배열을 스트림으로 다시 푸시하는 데 사용됩니다.
통사론:
공개 무효 읽지 않음(char[] carray)
- 매개변수: 이 메서드는 스트림으로 다시 푸시할 문자 배열을 사용합니다.
- 반환 유형: 이 메서드는 아무것도 반환하지 않습니다.
PushbackReader 메소드를 시연하는 Java 프로그램
예:
Java // Demonstrating the working // of methods of PushbackReader class import java.io.* ; public class Geeks { public static void main ( String [] args ) throws IOException { String s = 'GeeksForGeeks' ; StringReader sr = new StringReader ( s ); PushbackReader pr = new PushbackReader ( sr ); // Check if the stream is ready System . out . println ( 'Is the stream ready? ' + pr . ready ()); // Use read() and skip() System . out . print ( 'Using read() and skip(): ' ); for ( int i = 0 ; i < 3 ; i ++ ) { char c = ( char ) pr . read (); // Read 1 char System . out . print ( c ); pr . skip ( 1 ); // Skip next char } char c = ( char ) pr . read (); // read next char after 3 skip cycles System . out . print ( c ); // Now read() with array – only 1 char expected char [] arr = new char [ 1 ] ; pr . read ( arr ); System . out . println ( 'nUsing read() with an array: ' + new String ( arr )); // Unread and read back pr . unread ( 'F' ); char nextChar = ( char ) pr . read (); System . out . println ( 'After unread() the next character: ' + nextChar ); // Close the reader pr . close (); } }
산출
Is the stream ready? true Using read() and skip(): Geso Using read() with an array: r After unread() the next character: F퀴즈 만들기