Java の Reader クラスは、 抽象クラス 文字ストリームの読み取り用。そのサブクラス ( ファイルリーダー バッファ読み取り ) 文字を読み取るための主要なメソッドである read() の実装を提供します。
- これは、read(CharBuffer cb) メソッドを定義する Readable インターフェイスを実装します。
- リソースを解放する close() メソッドを定義する Closeable インターフェイスを実装します。
リーダークラスの宣言
Readerクラスの宣言は以下の通りです。
bashのforループ
パブリック抽象クラス Reader は Readable Closeable を実装します
例: Reader クラスを使用して、テキスト ファイルを 1 文字ずつ読み取ります。
Javaimport 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 という名前のファイルを作成します。
次のコンテンツをファイルに追加するか、任意のテキストを追加できます。
こんにちは、オタクのためのオタクへようこそ
ファイルを保存してプログラムを実行します。プログラムは example1 の内容を読み取って表示します。.txt出力として。
Java リスト
Reader クラスのコンストラクター
以下に示すように、Java Reader Class で使用されるコンストラクターが 2 つあります。
- 保護された Reader(): 新しい文字ストリーム リーダーを作成します。そのクリティカル セクションはリーダー自体で同期されます。
- 保護されたリーダー(オブジェクトロック) : 指定されたオブジェクトでクリティカル セクションが同期される新しい文字ストリーム リーダーを作成します。
Java Readerクラスのメソッド
| 方法 | 説明 |
|---|---|
| 抽象的な void close() | ストリームを閉じてリソースを解放します。 |
| void マーク(int readAheadLimit) | ストリーム内の現在位置をマークします。 |
| ブールマークサポート済み() | マーク/リセット操作がサポートされているかどうかを確認します。 |
| int read() | ストリームから 1 文字を読み取ります。最後に到達した場合は -1 を返します。 |
| int read(char[] cbuf) | 複数の文字を配列に読み取ります。 |
| abstract int read(char[] cbuf int off int len) | オフセット off から始まる配列の一部を長さ len にわたって読み取ります。 |
| int read(CharBufferターゲット) | 文字を CharBuffer オブジェクトに読み取ります。 |
| ボイドリセット() | ストリームを最新のマーク位置にリセットします。 |
| ロングスキップ(ロングn) | 指定された文字数をスキップします。 |
例: 以下のプログラムは、Java の Reader クラスのさまざまな機能の動作を示しています。
Javaimport 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
- フィルターリーダー
- 入力ストリームリーダー
- パイプリーダー
- 文字列リーダー