- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2017-07-10T15:40:14+09:00","","")
#author("2017-07-10T15:43:47+09:00","","")
#navi(../)
* テキストファイルの読み込みサンプル [#bb870b58]
Javaによるテキストファイルのリードサンプルソースを以下に記します。~
Java7から使用できるようになった [[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]] を使用したサンプルソースも記しています。
#contents
* 1行ずつの読み込み [#z1895ce8]
以下のサンプルソースでは、1行ずつ読み込みSystem.out.printlnで標準出力に出力します。
** BufferedReader, FileReaderを使用した例 [#r8d6fedc]
以下のサンプルソースは、BufferedReader, FileReaderを使用した例になります。~
念のため、すべてのReaderをclose()しています。
&ref(ReadTextFileFRBR.java); LF
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を使用した例 [#s17ae00e]
以下のサンプルソースは、BufferedReader, InputStreamReader, FileInputStreamを使用した例になります。~
念のため、すべてのReader, Streamをclose()しています。~
本サンプルソースでは、テキストファイルの文字コード(UTF-8)を指定しているところが上記のサンプルソースと異なります。~
Windowsで作成したテキストファイルであれば、MS932を指定すれば良いでしょう。
&ref(ReadTextFileIFSBR.java); LF
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();
}
}
}
** [[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]] の記述例 [#wb453a0a]
上記のBufferedReader, InputStreamReader, FileInputStreamを使用した例と同じですが、[[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]] で記述したサンプルソースになります。~
[[''try-with-resources''>http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html]]で記述しているので、closeが不要です。
&ref(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();
}
}
}
* 実行例 [#uc499e63]
上記の3つのサンプルソースをコンパイルし、実行した時の出力です。
+ 読み込むテキストファイルを準備
$ (echo aiueo; echo あいうえお) > text.txt
$ cat text.txt
aiueo
あいうえお
#br
+ サンプルソースのコンパイル
$ javac ReadTextFile*.java
#br
+ 実行
++BufferedReader, FileReaderを使用した例
$ java ReadTextFileFRBR
aiueo
あいうえお
#br
++BufferedReader, InputStreamReader, FileInputStreamを使用した例
$ java ReadTextFileIFSBR
aiueo
あいうえお
#br
++try-with-resources の記述例
$ java ReadTextFileTryWithRes
aiueo
あいうえお
以上、テキストファイルを読み込むサンプルソースでした。