Java PushbackReader 클래스

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 클래스의 메서드를 보여줍니다.

Java의 io.PushbackReader 클래스


이제 각 방법에 대해 하나씩 자세히 설명하겠습니다.

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  
퀴즈 만들기