logo

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のwhileループから抜け出す方法

Java PushbackReader メソッド

以下の図は、CharArrayWriter クラスのメソッドを示しています。

Javaのio.PushbackReaderクラス' title=


ここでは、各方法について 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() が呼び出された位置に戻るために使用されます。

構文:

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

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


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 プログラム

例:

dhlとはどういう意味ですか
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 
クイズの作成