1行出力 ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin
Expander等)を使って解凍して下さい。
キーボードからの入力 「System.in」はInputStreamクラスのバイト入力ストリームですが、扱うのは文字なので、InputStreamReaderクラスの入力ストリームを確立します。
更に、其れでは効率が悪いので、BufferedReaderでラップします。 InputStreamReader fi = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(fi); |
ストリームが確立されて終えば、後はファイルからの入力と同様、以下の様に1行分を読み込みます。 String s = in.readLine(); |
ファイルへの1行出力 出力ストリームをPrintWriterクラスで確立すると、画面出力と同じprintlnメソッドがファイルに対しても使えます。
PrintWriterクラス出力ストリームは、FileWriterクラスをラップして確立します。 FileWriter fw = new FileWriter("output.txt");
PrintWriter out = new PrintWriter(fw);
out.println(s); |
クラスの構成を決める クラスは、下の表の様な構成にします。
| クラス名 |
クラスの役割 |
内容 |
| ReadLineFromFileGui |
フレーム |
メインのクラス
BorderLayoutでパネルを配置 |
| ButtonPanel |
GUI部品を載せるパネル |
ファイル名を入力するテキストフィールドと読み込みを開始するボタンを載せる |
| ReadButton |
読み込み開始ボタン |
此のボタンが押されたら、テキストフィールドに指定されたファイル名からテキストデータを入力してテキストエリアに表示 | テキストエリアの文字の色を変更 テキストエリアの文字の色を変更するには、setForegroundメソッドを使います。 テキストエリアのオブジェクト.setForeground(色); |
此処では、通常処理の中ではマゼンタに、例外処理の中ではオレンジに設定します。 テキストエリアの文字を追加 ファイルからの読み込みは1行毎になるので、1行読む度にテキストエリアに読み込んだ情報を追加する事になります。
追加するには、appendメソッドを使います。 テキストエリアのオブジェクト.append(文字列); |
ファイルから読み込んだ文字列には、改行を表す「\n」は付加されない為、「\n」を加えて明示する必要が有ります。 fileContentsArea.append(s+"\n"); |
ファイル選択の標準ダイアログボックス ファイルを選択する為の標準ダイアログボックスを表示するクラスとして、SwingにはJFileChooserクラスが用意されています。
以下の手順でファイルを選択します。 JFileChooserのインスタンス化
↓
セッタメソッドにより各種設定
↓
ダイアログを開く
↓
ダイアログの結果、「開く」又は「保存」が押されたらファイルの内容を読み込んでテキストエリアに表示
又は、テキストエリアの内容をファイルに保存 |
クラスの構成を決める 此処でのクラスは、下の表の様な構成にします。
| クラス名 |
クラスの役割 |
内容 |
| GuiToFile |
フレーム |
メインのクラス
BorderLayoutでパネルを配置 |
| ButtonPanel |
GUI部品を載せるパネル |
ファイル名を表示するテキストフィールドと「開く」ボタン、「保存」ボタンを載せる |
| OpenButton |
開くボタン |
此のボタンが押されたら、「ファイルを開く」ダイアログボックスを表示し、指定したファイルを開いて内容をテキストエリアに表示 |
| SaveButton |
保存ボタン |
此のボタンが押されたら、「ファイルを保存」ダイアログボックスを表示し、指定したファイルにテキストエリアの内容を保存 | 戻る |