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 のコンストラクター

このクラスは 2 つのコンストラクターで構成されており、これらを使用すると、さまざまな方法でこのクラスのオブジェクトを作成できます。このクラスで使用できるコンストラクターは次のとおりです。

1. PushbackReader(リーダープッシュ): このコンストラクターは、デフォルトのプッシュバック バッファーを使用して新しい PushbackReader を作成するために使用されます。

構文:

public 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(リーダープッシュ整数サイズ): このコンストラクターを使用すると、プッシュバック バッファーのサイズを指定できます。

構文:

public 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 つずつ詳しく説明します。

1.読み取り(): このメソッドは、ストリームから一度に 1 文字を読み取るために使用されます。

構文:

パブリック int read()

  • パラメータ: このメソッドはパラメータを取りません。
  • 戻り値の型: このメソッドは、整数として読み取られた文字を返すか、ストリームの終わりに達すると -1 を返します。


2. read(char[] carray int offset int maxlen): このメソッドは、文字の塊を読み取るために使用されます。

構文:

public int read(char[] carray int offset int maxlen)

  • パラメータ: このメソッドには、以下に示す 3 つのパラメータが含まれます。
    • char[] キャリー: 読み取られた文字が格納される文字配列です。 保管されています。
    • 整数オフ​​セット: 配列内の開始位置です
    • int maxlen: 読み取れる最大文字数です。
  • 戻り値の型: このメソッドは読み取られた文字数を返します。


3.close(): このメソッドはリーダーを閉じるために使用されます

構文:

public void close()

  • パラメータ: このメソッドはパラメータを取りません
  • 戻り値の型: このメソッドは何も返しません。


4. マーク(int readAheadLimit): このメソッドは、ストリーム内の現在位置をマークするために使用されます。

構文:

public void mark(int readAheadLimit)

  • パラメータ: このメソッドには、マーク位置が無効になる前に読み取ることができる最大文字数を指定する 1 つのパラメーター readAheadLimit が含まれています。
  • 戻り値の型: このメソッドは何も返しません


5.スキップ(長いn): このメソッドは、特定の数の文字をスキップするために使用されます。

構文:

パブリックロングスキップ(long n)

  • パラメータ: このメソッドには、ストリーム内でスキップする文字数である long n というパラメーターが 1 つ含まれています。
  • 戻り値の型: このメソッドはスキップされた文字数を返します。


6.リセット(): このメソッドは、mark() が呼び出された位置に戻るために使用されます。

構文:

パブリックボイドリセット()

  • パラメータ: このメソッドはパラメータを取りません
  • 戻り値の型: このメソッドは何も返しません


7.markSupported(): このメソッドは、ストリームがマーキングをサポートしているかどうかを示します。

構文:

public boolean markSupported()

  • パラメータ: このメソッドはパラメータを取りません
  • 戻り値の型: マーキングがサポートされていないため、このメソッドは false を返します。


8.ready(): このメソッドは、ストリームを読み取る準備ができているかどうかを確認します。

構文:

  • パラメータ: このメソッドはパラメータを取りません
  • 戻り値の型: ストリームの準備ができている場合、このメソッドは true を返します。


9. 未読(int c): このメソッドは、文字をストリームにプッシュバックするために使用されます。

構文:

public void unread(int c)

  • パラメータ: このメソッドは、ストリームにプッシュバックされる文字である c という単一のパラメータを受け取ります。
  • 戻り値の型: このメソッドは何も返しません。


10. unread(char[] carray): このメソッドは、文字の配列をストリームにプッシュするために使用されます。

構文:

public void unread(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  
クイズの作成