①FileWriteインスタンスの作成
②FileWriterを元にBufferedWriterインスタンスを作成
③BufferedWriterのメソッドを呼び出しテキストを書き出す
④バッファ内に残ったデータを全て書き出す
⑤書き出しが終了したらcloseメソッドによりストリームを開放する
テキストファイルの読み込み
①FileReaderインスタンスを作成
②FileReaderを元にBufferedReaderインスタンスを作成
③BufferedReaderのメソッドを呼び出しテキストを読み込む
④テキストストリームにあるテキストを全て一括して読み込むことは出来ないため一行ずつ読み込みString変数に設定する
⑤読み出しが終了したらcloseメソッドによりストリームを開放する
例.
public class FileioApp extends Frame implements ActionListener{
private static final long serialVersionUID = 1L;
Button b1,b2;
TextArea ta;
public static void main(String[] args) {
new FileioApp();
}
public FileioApp(){
this.setSize(300,200);
ta = new TextArea();
this.add(ta,BorderLayout.CENTER);
b1 = new Button("Load");
b1.addActionListener(this);
b2 = new Button("Save");
b2.addActionListener(this);
Panel p = new Panel();
p.add(b1);
p.add(b2);
this.add(p,BorderLayout.SOUTH);
this.setVisible(true);
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource() == b1){
this.load();
}
else if(ev.getSource() == b2){
this.save();
}
}
public void load(){
FileReader fr = null;
BufferedReader br = null;
try{
fr = new FileReader("sample.txt");
br = new BufferedReader(fr);
String str = "";
String rstr = "";
while((rstr = br.readLine()) != null){
str += rstr + "\r\n";
}
ta.setText(str);
} catch(Exception ex){
ex.printStackTrace();
} finally {
try{
br.close();
} catch(Exception ex2){
ex2.printStackTrace();
}
}
}
public void save(){
FileWriter fw = null;
BufferedWriter bw = null;
try{
fw = new FileWriter("sample.txt");
bw = new BufferedWriter(fw);
bw.write(ta.getText());
bw.flush();
} catch(Exception ex){
ex.printStackTrace();
} finally {
try{
bw.close();
} catch (Exception ex2){
ex2.printStackTrace();
}
}
}
}