はじめに
データをファイルに保存することは、永続的な保存に役立ちます。Java では、ファイルを読み取るために使用できる 4 つのクラスがあります。FileReader、Scanner、FileInputStream、およびBufferedReaderです。これらのクラスは、java.ioパッケージの一部であり、Java におけるファイル操作に使用されます。
サンプル ファイルを作成する
読み取り用のサンプル .txt ファイルを作成しましょう。このファイルは任意のテキストエディタを使って作成でき、読み取りたい任意のデータを含めることができます。例:
This is the sample data stored in a file
Rahul:10025
Sohan:10026
Madan:10027
Jack:10028
必要なクラスをインポートする
ファイルを読み取り、その内容を文字列に変換するには、次のクラスをインポートする必要があります。
import java.io.*;
FileReader を使ってファイルを読み取る
FileReader クラスを使ってファイルからデータを読み取ります。FileReader クラスのオブジェクトはファイルの先頭を指します。ファイルの各文字を読み取るためにサイズ 1 のバッファを使い、それを String 変数に追加します。
try {
// 手順 1: 新しい FileReader オブジェクトを作成する
FileReader fr = new FileReader("path/to/your/file.txt");
// 手順 2: ファイルの内容を保持する String 変数を作成する
String fileData = "";
// 手順 3: 読み取った各文字を保持する整数型変数を作成する
int c;
// 手順 4: ファイルの終端に達するまでファイルを読み続ける
while ((c = fr.read())!= -1) {
// 手順 5: 読み取った各文字を fileData 文字列に追加する
fileData += (char) c;
}
// 手順 6: ファイルの内容を出力する
System.out.println(fileData);
// 手順 7: ファイルリーダーを閉じる
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
Scanner を使ってファイルを読み取る
Scanner クラスを使ってテキストファイルからデータを読み取ります。テキストファイルをスキャナーの入力ソースとして提供する必要があります。その後、\\Z メソッドでスキャナーを区切り、一度にすべてのデータを読み取り、それを文字列に変換します。
try {
File file = new File("path/to/file.txt");
Scanner scanner = new Scanner(file);
scanner.useDelimiter("\\Z");
String fileData = scanner.next();
System.out.println(fileData);
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
FileInputStream を使ってファイルを読み取る
FileInputStream クラスを使って、ファイルから直接データをバイト配列に読み取ります。必要なサイズ(この例では 10 バイト)のバッファを作成して、ファイルから読み取ったデータを一時的に格納し、それを StringBuilder オブジェクトに追加します。最後に、StringBuilder オブジェクトの内容を String に変換するために toString() メソッドを使います。
try {
File file = new File("path/to/file.txt");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[10];
StringBuilder stringBuilder = new StringBuilder();
int length;
while ((length = fileInputStream.read(buffer))!= -1) {
stringBuilder.append(new String(buffer, 0, length));
}
String fileData = stringBuilder.toString();
System.out.println(fileData);
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader を使ってファイルを読み取る
BufferedReader クラスを使って、ファイルからデータを簡単に読み取ります。それは一度にすべてのデータを読み取り、その後 readLine() メソッドを使って 1 行ずつ出力することができます。
try {
File file = new File("path/to/file.txt");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line;
while ((line = bufferedReader.readLine())!= null) {
System.out.println(line);
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
まとめ
この実験では、Java でファイルからデータを String に読み取る方法を学びました。これを達成する方法は複数あり、FileReader、Scanner、FileInputStream、および BufferedReader クラスを使用する方法が含まれます。これらの方法を自分で試して、それらがどのように機能するかと、特定のユースケースに最適なものは何かを理解するためにお勧めします。コードをテストし、テキストファイルのパスを確認することを忘れないでください。



