Java リーダー クラス
Java の Reader クラスは、 抽象クラス 文字ストリームの読み取り用。そのサブクラス ( ファイルリーダー バッファ読み取り ) 文字を読み取るための主要なメソッドである read() の実装を提供します。
- これは、read(CharBuffer cb) メソッドを定義する Readable インターフェイスを実装します。
- リソースを解放する close() メソッドを定義する Closeable インターフェイスを実装します。
リーダー リーダークラスの宣言
Readerクラスの宣言は以下の通りです。
パブリック抽象クラス Reader は Readable Closeable を実装します
例: Reader クラスを使用して、テキスト ファイルを 1 文字ずつ読み取ります。
Java import 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 出力として。
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 クラスのさまざまな機能の動作を示しています。
Java import 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
- フィルターリーダー
- 入力ストリームリーダー
- パイプリーダー
- 文字列リーダー