テキストファイルに保存する
では、「テキストファイル」を使う方法について考えていきましょう。まず最初は、テキストファイルに保存する方法です。テキストファイルへの保存は、一般に以下の2つのストリーム・クラスを利用します。
FileWriter――テキストファイルにString値を書き出すためのものです。
BufferedWriter――ストリームに書き出すデータをバッファする機能を付加するものです。
ストリームというのは、実は「これ専用のものを1つ用意すればいい」といったものではありません。Javaではさまざまな機能のストリームが用意されており、それら複数のものを組み合わせて使うことのほうが多いのですね。ここでは「FileWriter」と「BufferedWriter」というものを使います。これらは、以下のような手順で使います。
1.ファイル名を指定してFileWriterインスタンスを用意します。
2.FileWriterをもとに、BufferedWriterインスタンスを用意します。
3.BufferedWriterインスタンスのメソッドを呼び出し、String値を保存します。
4.保存し終わったら、closeメソッドを呼び出しストリームを開放します。
これで、指定したテキストファイルにString値を保存することができます。では、実際に簡単なサンプルを書いてみましょう。
package jp.allabout;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class SampleApp extends Frame {
TextArea area;
public SampleApp(){
this.setSize(new Dimension(300,200));
area = new TextArea();
this.add(area, BorderLayout.CENTER);
this.addWindowListener(new WindowMyAdapter());
}
public static void main(String[] args) {
new SampleApp().setVisible(true);
}
public void saveToFile(){
String fname = "text_data.txt";
FileWriter writer = null;
BufferedWriter bwriter = null;
try {
writer = new FileWriter(fname);
bwriter = new BufferedWriter(writer);
bwriter.write(area.getText());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bwriter.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
class WindowMyAdapter extends WindowAdapter {
public void windowClosing(WindowEvent arg0) {
saveToFile();
System.exit(0);
}
}
}