ファイル入出力・操作
ファイルへの書き込み
ファイルへ の書き込みには,
- FileWriter
- BufferedWriter
- PrintWriter
の 3つのWriterを使う.
//追記モードでファイルをオー プン
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(filename,true)));
writer.println("aaaaa") ;
writer.close();
PrintWriter クラスは,println以外にもいろいろなメソッドがあるので調べておこう.
最後にクローズするのを忘れないようにしよう.
ファイルの読み込み
ファイルの読 み込みも簡単です.
- FileReader
- BufferedReader
の2つの Reader を利用すればOK。
try {
BufferedReader reader = new BufferedReader(new FileReader(""));
String temp = "";
while ((temp = reader.readLine()) != null) {
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}catch(IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
Fileクラスを有効に使おう!
java.io.File オブジェクトは,ファイルを操作するのに大変便利なオブジェクトです.例えば以下のようなことができます.
ディレクトリの作成
ファイルの読 み書きをする場合,そのディレクトリが存在しないと作成できません.そこで,ディレクトリの作成には java.io.File オブジェクトを使います.
(new File("ABC")).mkdir();
または,
(new File("ABC")).mkdirs();
mkdirs の場合は,存在していないが必要な親ディレクトリも一緒に作成されます.
ファイルの更新日時を求める
ファ イルの更新日時を求めるには,lastModifiedメソッドを用いる.この場合,long型で表現されるから,理解可能な形に変換するに は,SimpleDateFormatクラスを用いるのがコツだ!
long dd = (new File(filename)).lastModified();
/** 時刻フォーマット変換 */
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.JAPAN);
String dd2 = sdf.format(new Long(dd));
ファイル名の切り出し
何らかの制 約により,絶対パスでファイルを受け取ったとします.この場合に,ファイル名だけを得たい時は,Fileクラスのメソッドを使うといいです.
File f = new File("絶対パス名");
String filename = f.getName()
こ のように,Fileクラスを使いこなせれば鬼に金棒です.他にも便利がメソッドがたくさんありますので,調べてみてください.
FileChooser を使う
Swingを利用してGUIでファイルを指定させるには,SwingのJFileChooserを使います.
import javax.swing.JFileChooser;
File openfile=null;
JFileChooser fc = new JFileChooser();
int res = fc.showOpenDialog(this);
if(res==JFileChooser.APPROVE_OPTION){
openfile = fc.getSelectedFile();
}