Java FileReader完全ガイド:コンストラクタ、メソッド、実践例
Java FileReaderクラス
JavaのFileReaderを、コンストラクタ、主要メソッド、実践例で解説します。
java.ioパッケージのFileReaderクラスは、ファイルから文字データを読み取ります。InputStreamReaderを拡張し、さまざまな文字エンコーディングをサポートします。
FileReaderに入る前に、JavaのFile APIを理解していることを確認してください。
FileReaderの作成
まずクラスをインポート:
import java.io.FileReader;
1. ファイル名で
FileReader input = new FileReader("path/to/file.txt");
指定ファイルを開くリーダーを作成。
2. Fileオブジェクトで
File fileObj = new File("path/to/file.txt");
FileReader input = new FileReader(fileObj);
3. charset指定(Java 11+)
FileReader input = new FileReader("path/to/file.txt", StandardCharsets.UTF_8);
Charsetを使用して目的のエンコーディングでファイルを読み取ります。
FileReaderの主要メソッド
FileReaderはReaderからのすべてのメソッドを実装し、独自の機能も追加しています。
read()メソッド
read()– 1文字読み取りread(char[] array)– 配列に文字を格納read(char[] array, int offset, int length)–offsetからlength文字を配列に読み取り
例:「This is a line of text inside the file.」を含むinput.txtを読み取り:
import java.io.FileReader;
class Main {
public static void main(String[] args) {
char[] buffer = new char[100];
try (FileReader reader = new FileReader("input.txt")) {
int readCount = reader.read(buffer);
System.out.println("ファイル内のデータ:");
System.out.println(new String(buffer, 0, readCount));
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力
ファイル内のデータ: This is a line of text inside the file.
注: input.txtをカレントワーキングディレクトリに配置してください。
getEncoding()メソッド
リーダーが使用するcharsetを取得:
import java.io.FileReader;
import java.nio.charset.StandardCharsets;
class Main {
public static void main(String[] args) {
try {
FileReader defaultReader = new FileReader("input.txt");
FileReader utf8Reader = new FileReader("input.txt", StandardCharsets.UTF_8);
System.out.println("デフォルトエンコーディング: " + defaultReader.getEncoding());
System.out.println("UTF-8エンコーディング: " + utf8Reader.getEncoding());
} catch (Exception e) {
e.printStackTrace();
}
}
}
出力
デフォルトエンコーディング: Cp1252 UTF-8エンコーディング: UTF-8
charset指定時、getEncoding()はそのcharsetを返し、未指定時はプラットフォームデフォルトを反映します。
close()メソッド
使用後は常にリーダーを閉じます。上記のtry-with-resources文が自動的に処理します。
FileReaderのその他のメソッド
| メソッド | 説明 |
|---|---|
ready() | ストリームが読み取り準備完了かどうかを示す |
mark() | ストリームの現在位置をマーク |
reset() | ストリームを最新のマーク位置にリセット |
詳細については公式Java FileReaderドキュメントを参照。
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Java BufferedReader完全ガイド:効率的な文字ストリーム処理
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築
- Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除