ファイル入出力

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

入出力にファイルを使う場合も、ストリームを使うことによって画面に対しての入出力と同様に実現可能。

コード例*******************************************
・sampleIn.txtからデータを読み込み、sampleOut.txtへ出力する。
・出力する際、「行番号:sampleIn.txtの内容」の形式で行番号を追加する。

package sample.sample1;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;

public class Sample1_2 {
  public static void main(String[] args) throws IOException {
    InputStream inputStream = new FileInputStream(new File("c:\\sampleIn.txt"));
    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

    OutputStream outputStream = new FileOutputStream(new File("c:\\sampleOut.txt"));
    PrintStream printStream = new PrintStream(outputStream);

    String line = bufferedReader.readLine();
    for(int lineNo = 1; line != null; lineNo++){
     printStream.println(lineNo + ":" + line);
     line = bufferedReader.readLine();
    }
  }
}

**************************************************
[コード解説]
  • sampleIn.txtからデータを読み込むためにInputStreamを作成 → 実体はFileInputStreamのインスタンス。
  • 出力先のOutputStreamを作成 → 自体はFileOutputStreamのインスタンス。
 …標準入出力と同様にPrintStreamで扱えるようにしている。
  • BufferedReader#readLine()メソッドの戻り値は1行分の文字列(改行コードは含まれない)。
 …readLine()メソッドの戻り値がnullでない間はループ処理を行う。
  (戻り値がnullという事は、ストリームの終わり(ファイルの終わり)に達したことを意味する。)

  • BufferedReaderとPrintStreamを用意するまでは多少違うものの、それ以外は画面からの入出力と同様に 処理が可能。(違いは、入出力のストリームの元となっている部分)
→オブジェクト指向の恩恵(ポリモーフィズムの概念が生かされている)
最終更新:2009年05月30日 18:48
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。