2009年6月9日火曜日

Java テキストファイルに文字を書き込む

FileWriterクラスのwriteメソッドを使用してファイルに文字を書き込みます。
FileWriterクラスのコンストラクタには書き込むファイルのパスを指定します。
コンストラクタの第2引数にtrueを指定すると、ファイルへの追加書き込みを行います。

package FileAccess;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.IOException;


public class FileWriteSample01 extends Frame implements ActionListener{
private static final long serialVersionUID = 1L;

public static void main(String args[]){
new FileWriteSample01();
}

Frame frm = this;
TextArea txtBody;
Button btnSave;

public FileWriteSample01(){
this.setTitle("FileWriteSample01");
this.setSize(300,300);


txtBody = new TextArea();
this.add(txtBody,BorderLayout.CENTER);

btnSave = new Button("Save");
btnSave.addActionListener(this);

Panel pnl = new Panel();
pnl.add(btnSave);  
this.add(pnl,BorderLayout.SOUTH);

this.setVisible(true);
}

public void actionPerformed(ActionEvent ev){
SaveFile();
}

/*
* ファイルを保存します。
*/
private void SaveFile(){
//名前を付けて保存ダイアログを表示します。
String path = null;
FileDialog fd = new FileDialog(this , "名前を付けて保存" , FileDialog.SAVE);
try{
fd.setVisible(true);
if (fd.getFile() != null){
path = fd.getDirectory() + fd.getFile();
}
}finally{
fd.dispose();
}
//ファイルパスがnullの場合は処理を中止します。
if (path == null){
return; 
}
//テキストエリアの内容をファイルに書き込みます。
FileWriter fw =null;
try {
//fw = new FileWriter(path);
//追加書き込みする場合は、第2引数にtrueを指定します。
fw = new FileWriter(path,true);
fw.write(txtBody.getText());
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if (fw != null){
fw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}






ファイルへ追加書き込みを行います。


0 件のコメント: