このエントリーをはてなブックマークに追加


テキストファイルを追記モード開き文字列を追加する

テキストファイルが存在する場合は、そのテキストファイルの末尾に入力した文字を追記し、
存在しない場合は、新規にファイルを作成し、入力したテキストを出力するサンプルソースになります。

関連記事

テキストをファイルに追記するサンプルコード

本サンプルソースは、以下の記事とほとんど一緒です。

サンプルプログラムの操作について

キーボードから文字を入力し、入力した文字列をファイルに出力します。
文字の入力を終了するには、.(dot)のみ入力してEnterキーを押してください。
本サンプルプログラムが終了します。

サンプルソース

fileAddText.java UTF-8, LF

import java.lang.Exception;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.InputStreamReader;
import java.io.BufferedReader;

class AddText {

    String filename;

    private void setFilename(String s) {
        this.filename = s;
    }

    private String getFilename() {
        return this.filename;
    }

    private void usage() {
        System.err.println("Usage: java AddText <add filename>");
        System.exit(1);
    }

    private boolean inputLine(OutputStreamWriter osw) {
        boolean ret = true;
        try {
            System.out.print("> "); // prompt
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            String in = br.readLine();
            if (in.equals(".")) { ret = false; } // input terminator
            else { osw.write(in +  System.getProperty("line.separator")); } // output input string
//          br.close();     // stdinなので閉じる必要なし・閉じれない(閉じると例外発生)
//          isr.close();    // stdinなので閉じる必要なし・閉じれない(閉じると例外発生)
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(2);
        }
        return ret;
    }

    private void run() {
        String charcode = System.getProperty("file.encoding");  // default character code
        try {
            FileOutputStream fos = new FileOutputStream(this.getFilename(), true); // append is true
            OutputStreamWriter osw = new OutputStreamWriter(fos, charcode);
            while (inputLine(osw));
            osw.close();
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.exit(3);
        }
    }

    AddText(String[] args) {
        if (args.length != 1) {
            usage();
        }
        this.setFilename(args[0]);
    }

    public static void main(String[] args) {
        AddText me = new AddText(args);
        me.run();
    }
}

実行結果

コンパイルして実行します。
本プログラムは、出力するファイルを引数として渡す必要があります。

  1. コンパイル
    $ javac AddText.java
     
  2. 引数なしで実行した場合、使い方(Usage)が表示されます。
    $ java AddText
    Usage: java AddText <add filename>
     
  3. 出力ファイルをadd.txtとして実行します。
  4. ファイルがないことを確認。
    $ ls -l add.txt
    ls: 'add.txt' にアクセスできません: No such file or directory
     
  5. 文字を入力しファイルに出力されていることを確認。
    $ java AddText add.txt
    > 1
    > 2
    > 3
    > .
    
    $ cat add.txt
    1
    2
    3
     
  6. 再実行しファイルに追記されていることを確認。
    $ java AddText add.txt
    > 111
    > 222
    > 333
    > .
    
    $ cat add.txt
    1
    2
    3
    111
    222
    333
    追記されているのが確認できます。

以上、Javaでファイルにテキストを追記するサンプルソースでした。


添付ファイル: fileAddText.java 23件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-07-12 (水) 17:18:52 (521d)