Javaによるテキストファイルのリードサンプルソースを以下に記します。
Java7から使用できるようになった try-with-resources を使用したサンプルソースも記しています。
以下のサンプルソースでは、1行ずつ読み込みSystem.out.printlnで標準出力に出力します。
以下のサンプルソースは、BufferedReader, FileReaderを使用した例になります。
念のため、すべてのReaderをclose()しています。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
class ReadTextFileFRBR {
public static void main(String[] args) {
String readFile = "text.txt";
BufferedReader br = null;
try {
FileReader fr = new FileReader(readFile);
br = new BufferedReader(fr);
String l = br.readLine();
while (l != null) {
System.out.println(l);
l = br.readLine();
}
fr.close();
br.close();
} catch (FileNotFoundException e) {
System.err.println(readFile + " not found.");
} catch (IOException e) {
System.err.println("I/O error.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下のサンプルソースは、BufferedReader, InputStreamReader, FileInputStreamを使用した例になります。
念のため、すべてのReader, Streamをclose()しています。
本サンプルソースでは、テキストファイルの文字コード(UTF-8)を指定しているところが上記のサンプルソースと異なります。
Windowsで作成したテキストファイルであれば、MS932を指定すれば良いでしょう。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.FileNotFoundException;
import java.io.IOException;
class ReadTextFileIFSBR {
public static void main(String[] args) {
String readFile = "text.txt";
BufferedReader br = null;
try {
FileInputStream fis = new FileInputStream(readFile);
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
br = new BufferedReader(isr);
String l = br.readLine();
while (l != null) {
System.out.println(l);
l = br.readLine();
}
br.close();
isr.close();
fis.close();
} catch (FileNotFoundException e) {
System.err.println(readFile + " not found.");
} catch (IOException e) {
System.err.println("I/O error.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
上記のBufferedReader, InputStreamReader, FileInputStreamを使用した例と同じですが、try-with-resources で記述したサンプルソースになります。
try-with-resourcesで記述しているので、closeが不要です。
ReadTextFileTryWithRes.java LF
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.FileNotFoundException;
import java.io.IOException;
class ReadTextFileTryWithRes {
public static void main(String[] args) {
String readFile = "text.txt";
try (BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(readFile),"UTF-8"))) {
String l = br.readLine();
while (l != null) {
System.out.println(l);
l = br.readLine();
}
} catch (FileNotFoundException e) {
System.err.println(readFile + " not found.");
} catch (IOException e) {
System.err.println("I/O error.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
上記の3つのサンプルソースをコンパイルし、実行した時の出力です。
$ (echo aiueo; echo あいうえお) > text.txt $ cat text.txt aiueo あいうえお
$ javac ReadTextFile*.java
$ java ReadTextFileFRBR aiueo あいうえお
$ java ReadTextFileIFSBR aiueo あいうえお
$ java ReadTextFileTryWithRes aiueo あいうえお
以上、テキストファイルを読み込むサンプルソースでした。