人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

テキストファイル入出力

テキストファイルからデータを読み込んだり、書き込んだりする基本的な方法です。ファイルに保存してあるイベントデータを読み込んだり、ゲームのスコアをファイルに記録したりする場合に使います。

サンプルは読み込みボタンを押すとtest.txtからデータを読み込んでテキストエリアに表示します。テキストエリアでテキストを修正して書き込みボタンを押すとtest.txtにデータを保存されます。

text_io.jar

テキストファイルの読み込み

テキストファイルがJARファイルの外にあるか中にあるかでファイル指定の方法が少し変わります。まずは、JARファイルの外にテキストファイルがある場合です。

    try {
        // test.txtからファイルを読み込んでテキストエリアに表示
        BufferedReader br = new BufferedReader(
            new FileReader("test.txt"));  // ファイルを開く
        String line;
        while ((line = br.readLine()) != null) {  // 1行ずつ読み込む
            // 読み込んだ1行をテキストエリアに表示
            textArea.append(line + "\n");
        }
        br.close();  // ファイルを閉じる
    } catch (FileNotFoundException ex) {
        ex.printStackTrace();
    } catch (IOException ex) {
        ex.printStackTrace();
    }

このサイトでもそうですが、普通ゲームを配布するときはテキストデータ、画像データ、音楽データなどはJARファイル内にまとめて圧縮すると思います。JARファイル内にあるテキストデータからデータを読み込むときは下のようにします。

    BufferedReader br = new BufferedReader(
        new InputStreamReader(
            getClass().getResourceAsStream("test.txt")));

テキストファイルの書き込み

JARファイル外のテキストファイルにデータを書き込む方法です。たぶん、JARファイル内のファイルに書き込む方法はないと思われます。

    try {
        // test.txtにテキストエリアの内容を書き込む
        BufferedWriter bw = new BufferedWriter(
            new FileWriter("test.txt"));  // ファイルを開く
        bw.write(textArea.getText());
        bw.close();
    } catch (IOException ex) {
        ex.printStackTrace();
    }