next up previous
Next: 3.5 圧縮例 Up: 3 ファイルの取り扱い Previous: 3.3 ファイルのOpen, 文字読み込み

3.4 ファイルの読み込み書き出し

次の例は,ファイルをコピーするための例である. ファイルが無い場合や, ディレクトリを指定した場合にはエラー表示がなされるように Exceptionをキャッチして,err出力へ表示を行っている. そのために,mainメソッドには,throws節が宣言されている. read(buf)は,buf.lengthバイトのデータを読み出す.
import java.io.*;

public class FileInputOutput {
  public static void main (String[] args)
           throws Exception {
    if (args.length < 2) {
      System.err.println(
         "使用方法: java FileInputOutput " +
             "コピー元 コピー先");
      return;
    }

    final int BUF_SIZE = 1024;
    byte buf[] = new byte[BUF_SIZE];
    int numBytes;

    try {
      FileInputStream fis =
          new FileInputStream(args[0]);
      FileOutputStream fos =
          new FileOutputStream(args[1]);
            
      while ((numBytes = fis.read(buf))
                                != -1) {
        fos.write(buf, 0, numBytes);
      }
      fis.close();
      fos.close();
    } catch (Exception e) {
      System.err.println(e);
    }
  }
}

% java basic.FileInputOutput ttt aaa
java.io.FileNotFoundException: ttt
 (指定されたファイルが見つかりません。)
count = 0, total = 48

% java basic.FileInputOutput application aaa
java.io.FileNotFoundException: application 
(アクセスが拒否されました。)
count = 0, total = 48


generated through LaTeX2HTML. M.Inaba 平成18年5月7日