Javaの入出力処理においてはほとんど上書き処理になってしまいます。
そこで今回はPrintWriterを使った出力時に追記にする方法をご紹介します。
早速ですがサンプルをみてみましょう。
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class AddWritingSample {
public static void main(String[] args) {
FileWriter fw = null;
PrintWriter out = null;
try {
String path = "C:\\sample\\sample.txt";
fw = new FileWriter(path, true);
out = new PrintWriter(fw);
out.println("書き込み処理1");
out.println("書き込み処理2");
out.flush();
System.out.println("書き込み完了!");
} catch (IOException e) {
e.printStackTrace();
} finally {
if(out != null) {
out.close();
}
if(fw != null) {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
ポイントは11行目のFileWriterクラスです。
FileWriterのコンストラクタには第二引数にbooleanで追記かどうかを指定することができます。
trueだと追記、falseか指定なしだと上書きになります。
| シグニチャ | public FileWriter(String fileName, boolean append) throws IOException |
|---|---|
| 追記 | new FileWriter(path, true) |
| 上書き | new FileWriter(path, false) または new FileWriter(path) |