java.ioパッケージは、データストリームやシリアライゼーション、ファイルシステムを通じたシステム入出力を提供します。

java.ioパッケージのクラス
Class Description
File
Serializable
java.ioパッケージの例外
Exception Description
FileNotFoundException ファイルが見つからないときにスローされる例外

キーボードから文字列を入力する

キーボードから文字列を入力するJavaソースコードの例を次に示す。

import java.io.*;

class KeyboardInput {
  public static void main(String arg[]) {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("文字列を入力してください: ");
    try {
      String line = br.readLine();
      System.out.println(line);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

キーボードから文字列を入力するサンプルコードの実行例を次に示す。

$ java KeyboardInput
文字列を入力してください: Java
Java
$

ファイルからデータを入力する

ファイルからデータを読み込み、他のファイルへ書き出す(つまりファイルコピー)例を次に示す。

まずは、FileInputStreamからバイト列を読みだして、FileOutputStreamに書き込む例。

import java.io.*;

class FileCopy1 {
  static final int BUFSIZE = 80;

  public static void main(String arg[]) {
    try {
      FileInputStream fis = new FileInputStream(arg[0]);
      FileOutputStream fos = new FileOutputStream(arg[1]);
      byte buff[] = new byte[BUFSIZE];
      int len;

      while ((len = fis.read(buff, 0, BUFSIZE)) != -1) {
        fos.write(buff, 0, len);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

次に、FileInputStreamから1文字づつ読みだして、FileOutputStreamに1文字づつ書き込む例。

import java.io.*;

class FileCopy2 {
  public static void main(String arg[]) {
    try {
      FileInputStream fis = new FileInputStream(arg[0]);
      FileOutputStream fos = new FileOutputStream(arg[1]);
      int ch;

      while ((ch = fis.read()) != -1) {
        fos.write(ch);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

最後に、BufferedReaderから1行読みだして、PrintStreamに1行書き出す例。

import java.io.*;

class FileCopy3 {
  public static void main(String arg[]) {
    try {
      FileInputStream fis = new FileInputStream(arg[0]);
      BufferedReader br = new BufferedReader(new InputStreamReader(fis));
      FileOutputStream fos = new FileOutputStream(arg[1]);
      PrintStream ps = new PrintStream(new BufferedOutputStream(fos));
      String line;

      while ((line = br.readLine()) != null) {
        ps.println(line);
      }
      ps.flush();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

java.io.FileNotFoundException

java.io.FileNotFoundException