ここではテキストファイルの内容を読み込む方法を解説します。
Javaでテキストファイルの内容を読み込む方法は1文字ずつ読み込む方法と1行ずつ読み込む方法の2種類あります。
1文字ずつ読み込む方法
1文字ずつ読み込むにはFileReaderクラスでreadメソッドを使います。
import文
import java.io.*;
1文字読み込んで表示する処理
FileReader fr=new FileReader(new File("テキストファイルのパス"));
int data=fr.read();
System.out.println((char)data);
fr.close();
上のようにすることでテキストファイルから文字を1文字読み込むことが出来ます。
読み込むテキストファイルはそのパスで指定します。
パスとは
のようなものです。
プログラムとテキストファイルが同じフォルダに保存されている場合はファイルの名前だけで指定することが出来ます。
readメソッドはint型の数値を取得します。
そのため、char型に変換して表示させます。
読み込む文字がなくなると-1を取得します。
これを利用して、テキストファイルのすべての文字を読み込むには以下のようにします。
int data;
while((data=fr.read())!=-1) {
System.out.print((char)data);
}
これはwhile文を使ってreadメソッドの値が-1以外の時繰り返し、文字を読み込み表示します。
実際にテキストファイルを読み込むプログラムを組んでみます。
ソースコード
import java.io.*;
public class Sample15 {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader(new File("text2.txt"));
int data=fr.read();
System.out.println((char)data);
int data;
while((data=fr.read())!=-1) {
System.out.print((char)data);
}
fr.close();
}
}
スポンサーリンク
1行ずつ読み込む方法
テキストファイルを1行ずつ読み込むにはBufferedReaderクラスでreadLineメソッドを使います。
import文
import java.io.*;
1行読み込んで表示する処理
FileReader fr=new FileReader(new File("text2.txt"));
BufferedReader br=new BufferedReader(fr);
String str = br.readLine();
System.out.println(str);
1文字ずつ読み込む方法と違い、FileReaderクラスで読み込むことはできません。
そのためBufferedReaderクラスを用います。
BufferedReaderクラスは文字をString型で取得します。
ですので、今回は取得した値をそのまま出力することで文字を表示させることが出来ます。
readLineメソッドはこれ以上読み込む文字がなくなるとnullを返します。
これを利用してファイル内のすべての文字を読み込む処理を行うことが出来ます。
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
}
これはwhile文を使ってbr.readLineの値がnull以外の時繰り返してデータを読み込み表示します。
実際にテキストファイルのデータを読み込むプログラムを作ってみます。
ソースコード
import java.io.*;
public class Sample16 {
public static void main(String[] args) throws IOException{
FileReader fr=new FileReader(new File("text2.txt"));
BufferedReader br=new BufferedReader(fr);
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
}
br.close();
}
}
スポンサーリンク