日曜プログラマの備忘録

『日曜プログラマ.com』公式ブログ

Swingのテキスト領域コンポーネントを利用したファイル入出力

2025-12-26 20:25:46
2025-12-26 23:07:03
目次

Swingのテキスト領域コンポーネントを利用したファイルの読み込み(ファイル入力)

前提として、Swingのテキスト領域コンポーネントの変数宣言と初期化が行われているものとする。

private javax.swing.JTextArea jTextArea1;

jTextArea1 = new javax.swing.JTextArea();

File file = new File(読み込み対象のファイルパス);  // 例:System.getProperty("user.home") + File.separator + "Desktop" + File.separator + "test.txt"

try (BufferedReader bufferedReader =
     new BufferedReader(new InputStreamReader(new FileInputStream(file), "Shift-JIS"))) {  // 指定可能な主な文字コード:UTF-8/EUC-JP /Shift_JIS
    String string = bufferedReader.readLine();

    while (string != null) {
        jTextArea1.append(string);
        jTextArea1.append(System.getProperty("line.separator"));
        string = bufferedReader.readLine();
    }

    bufferedReader.close();
} catch (FileNotFoundException e) {
    System.out.println("ファイルが見つかりません! (" + e.getMessage() + ")");
} catch (IOException e) {
    System.out.println("ファイルの読み込み中にエラーが発生しました! (" + e.getMessage() + ")");
}

Swingのテキスト領域コンポーネントを利用したファイルの書き出し(ファイル出力)

前提として、Swingのテキスト領域コンポーネントの変数宣言と初期化が行われているものとする。

private javax.swing.JTextArea jTextArea1;

jTextArea1 = new javax.swing.JTextArea();

String string = jTextArea1.getText();
File file = new File(書き出し対象のファイルパス);  // 例:System.getProperty("user.home") + File.separator + "Desktop" + File.separator + "test.txt"

try (BufferedWriter bufferedWriter =
     new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "Shift_JIS"))) {  // 指定可能な主な文字コード:UTF-8/EUC-JP /Shift_JIS
    String[] lines = string.split("\n");

    for (String line : lines) {
        bufferedWriter.write(line);

        bufferedWriter.write("\r\n");  // Windowsの場合
        //bufferedWriter.write("\n");  // Linuxの場合
        //bufferedWriter.write(System.getProperty("line.separator"));  // OS環境に依存させる場合(1)
        //bufferedWriter.newLine();  // OS環境に依存させる場合(2)
    }

    bufferedWriter.close();
} catch (IOException e) {
    System.out.println("ファイルの書き出し中にエラーが発生しました! (" + e.getMessage() + ")");
}

この記事を書いた人

ASAWA Kōichi

『日曜プログラマ.com』作者兼管理人