Java Gold合格への道 ~Java I/O・ファイルの読み書き~
スポンサーリンク
こんにちは。たろすです。
今回はJava I/Oのファイルの読み書きについて説明します。
ファイルの読み書き方法
1文字ずつ
バイナリファイルの読み書きにはFileInputStreamとFileOutputStream、テキストファイルの読み書きにはFileReaderとFileWriterを使います。
String filePath = "files/text.txt"; // ファイル書き込み try (FileWriter writer = new FileWriter(filePath)) { writer.write('a'); } catch (IOException e) { e.printStackTrace(); } // ファイル読み取り try (FileReader reader = new FileReader(filePath)) { int c; while ((c = reader.read()) != -1) { System.out.print((char) c); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
a
ファイルの書き込みにはwriteメソッドを使います。
一方で読み込みにはreadメソッドを使います。
readメソッドではファイルの終端に達すると-1を返すため、-1になるまでwhileループを回します。
戻り値はintなのでcharにキャストして出力しています。
1行ずつ
BufferedReaderとBufferedWriterを使います。
String filePath = "files/text.txt"; try (BufferedWriter bw = new BufferedWriter(new FileWriter(filePath))) { bw.write("abc"); bw.newLine(); bw.write("def"); } catch (IOException e) { e.printStackTrace(); } try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
abc def
書き込みにはwriteメソッド、読み込みにはreadLineメソッドを使います。
newLineメソッドはプラットフォームあわせた改行を入れることができます。
readLineメソッドは終端まで達するとnullを返すので、nullになるまでwhileループを回しています。