FileWriterの第二引数にtrueを入れよう
結論はこれだけです
普通に書くと上書きされる
まず、try.txtを作成してみます。
以下のコードを一度実行します。
Test.java
public static void todoWrite() {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("try.txt"));) {
writer.write("Test");
writer.newLine();
writer.write("おためし");
writer.newLine();
} catch (IOException e) {
System.out.println("ファイルの書き込みエラー");
}
}
すると、中身は
try.txt
Test
おためし
となりますね。
では再度Test.javaを実行すると?
try.txt
Test
おためし
中身は変わりません。
なぜなら、もともとあった文章を上書きしてしまうからです。
では次はFileWriterの第二引数にtrueを入れてみましょう。
元の文章に追加で書き込む方法
先程のコードのFileWriterの第二引数にtrueを入れてみました。
これで一度実行してみましょう。
Test.java
public static void todoWrite() {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("try.txt", true));) {
writer.write("Test");
writer.newLine();
writer.write("おためし");
writer.newLine();
} catch (IOException e) {
System.out.println("ファイルの書き込みエラー");
}
}
一度目の実行で中身は
try.txt
Test
おためし
となりますね。
では再度Test.javaを実行すると?
try.txt
Test
おためし
Test
おためし
このように、末尾に文章が足されていきます。
こうすることでファイルの追加記入ができるようになりましたね。
まとめ
java.io.FileWriterのインスタンス生成時、第二引数を入れないと、上書きする。
java.io.FileWriterのインスタンス生成時、第二引数にtrueを入れると、追記する。