Java Readerクラス完全ガイド:サブクラス、メソッド、FileReader実例
Java Readerクラス
JavaのReaderクラス、その主要サブクラス、必須メソッド、FileReaderを使用したステップバイステップ例を解説します。
Readerクラスとは?
java.ioパッケージのReaderクラスは、文字入力ストリームを表す抽象スーパークラスです。直接インスタンス化できませんが、その具象サブクラスがさまざまなソースからテキストデータを読み取る機能を提供します。
Readerの一般的なサブクラス
- BufferedReader – 文字、配列、行の効率的な読み取りのためにバッファリングを追加
- InputStreamReader – 指定charsetを使用してバイトストリームを文字ストリームに橋渡し
- FileReader – デフォルトcharsetでエンコードされたファイル読み取りの便利クラス
- StringReader – 文字列から文字をストリームとして読み取り
各サブクラスは専用チュートリアルで深掘りします。
Readerのインスタンス化
具象リーダーを作成するには、java.io.Readerとそのサブクラスのいずれかをインポート。例えばFileReaderを使用:
import java.io.Reader;
import java.io.FileReader;
Reader input = new FileReader("input.txt");
Readerは抽象クラスなので、サブクラスを使用する必要があります。そうでないとコンパイルエラーになります。
ヒント: 他のサブクラスも同様の方法でインスタンス化できます。
Readerが提供する主要メソッド
boolean ready()– ブロックせずに読み取り可能ならtrueを返すint read(char[] cbuf)– 文字を配列に読み取り、読み取った数を返すint read(char[] cbuf, int off, int len)– 最大len文字をcbufのoffから読み取りvoid mark(int readAheadLimit)– ストリームの現在位置をマークvoid reset()– ストリームを最後にマークした位置に再配置long skip(long n)–n文字をスキップして破棄
例:FileReaderでファイル読み取り
input.txtに以下の内容があると仮定:
This is a line of text inside the file.
ファイルを読み取り内容を出力する完全で本番対応の例:
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Main {
public static void main(String[] args) {
// 期待コンテンツに十分な大きさのバッファを割り当て
char[] buffer = new char[100];
// try-with-resourcesでリーダーを自動的にクローズ
try (Reader reader = new FileReader("input.txt")) {
System.out.println("ストリームにデータがありますか? " + reader.ready());
int charsRead = reader.read(buffer);
System.out.println("ストリーム内のデータ:\n" + new String(buffer, 0, charsRead));
} catch (IOException e) {
e.printStackTrace();
}
}
}
出力
ストリームにデータがありますか? true ストリーム内のデータ: This is a line of text inside the file.
重要ポイント:
- リーダーは常に閉じる –
try-with-resourcesが自動処理 - 読み取り前に
ready()でデータ可用性を確認 IOExceptionをハンドリングしてファイル未検出や読み取りエラーに対応
詳細ドキュメントは公式Java Reader Javadocを参照。
Happy coding!
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ArrayList完全マスター:操作・メソッド・ベストプラクティス
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除