java.ioパッケージ

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

Table of Contents

  1. 1 クラス
    1. 1.1 BufferedReader
    2. 1.2 File
    3. 1.3 FileInputStream
    4. 1.4 FileOutputStream
    5. 1.3 OutputStream
    6. 1.4 Serializable
    7. 1.5 Writer
  2. 2 例外
    1. 2.1 FileNotFoundException

クラス

java.ioパッケージには次に示すクラスがある。

java.ioパッケージのクラス
Class Description
OutputStream バイと出力ストリームを表現する全てのクラスのスーパークラス
Writer 文字ストリームに書き込むための抽象クラス

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

キーボードから文字列を入力する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
Figure 1. java.io.FileNotFoundException