【Java】PrintWriterで上書きではなく追記にする方法


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)
  • このエントリーをはてなブックマークに追加

PAGE TOP