テキストファイルへの追記

java

Javaでテキストファイルへ追記する方法を紹介しています。

[スポンサーリンク]

目次

  1. 既存ファイルへ文字を追加する(PrintWriter編)
  2. 既存ファイルへ文字を追加する(FileWriter編)

既存ファイルへ文字を追加する(PrintWriter編)

こちらのプログラムを動かす前提として、「テキストファイルへの書き込み」を参考に既存ファイルを作成して下さい。

/**
 * 既存ファイルに文字列を追記するクラスです。
 *
 */
public class FileWriteAdd {

    /**
     * メイン処理
     * @param arg
     */
    public static void main(String arg[]) {
        // 文字列を追記したいファイルのディレクトリパスを取得します。
        String dir = System.getProperty("user.dir");

        // 文字列を追記したいファイル名を指定してFileオブジェクトを生成します。
        File file = new File(dir + "/test.txt");
        PrintWriter pw = null;

        try {
            // 出力ストリームを生成します。
            pw = new PrintWriter(
                    new OutputStreamWriter(
                            new FileOutputStream(file, true)));

            // ここでファイルに文字を書き込みます。
            pw.println("追加その1");
            pw.println("追加その2");
            System.out.println("ファイルの書き込みに成功しました!");
        } catch (IOException e) {
            System.out.println(e);
        } finally {
            // クローズ処理(成功・失敗に関わらず必ずクローズします。)
            // クローズ漏れはバグのもとになります。必ずfinally句でクローズしましょう。
            if (pw != null) {
                pw.close();
            }
        }
    }

実行結果

>実行結果
ファイルの書き込みに成功しました!
テキストファイルへの追記実行結果

ファイルに文字列が出力されています。(最初の2行は既存の文字列です。)

stringその1
stringその2
追加その1
追加その2

解説

「FileOutputStreamクラス」の第二引数に「true」を指定することによって既存ファイルへ文字列を追加することが可能になります。

既存ファイルへ文字を追加する(FileWriter編)

/**
 * 既存ファイルに文字列を追記するクラスです。
 *
 */
public class FileWriteAddFileWriter {

    public static void main(String arg[]) {
        // 文字列を追記したいファイルのディレクトリパスを取得します。
        String dir = System.getProperty("user.dir");

        // 文字列を追記したいファイル名を指定してFileオブジェクトを生成します。
        File file = new File(dir + "/test.txt");

        FileWriter filewriter = null;
        try{
            filewriter = new FileWriter(file, true);

            // ここでファイルに文字を書き込みます。
            filewriter.write("追加その1\r\n");
            filewriter.write("追加その2\r\n");
            System.out.println("ファイルの書き込みに成功しました!");
          }catch(IOException e){
            System.out.println(e);
          } finally {
              // クローズ処理(成功・失敗に関わらず必ずクローズします。)
              // クローズ漏れはバグのもとになります。必ずfinally句でクローズしましょう。
              if (filewriter != null) {
                  try {
                    filewriter.close();
                } catch (IOException e) {
                    System.out.println(e);
                }
              }
          }
    }
}

実行結果

>実行結果
ファイルの書き込みに成功しました!