ファイル入出力・操作

ファイルへの書き込み

ファイルへ の書き込みには,

  • 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();
  }