////////////////////////////////////////////////////////////////////////////////
// << j624.java >>
//
//  ファイル処理(2)文字ストリーム(入出力:ファイル、バッファリング)
//
//    ファイルから1行単位で読み込み、ファイルに1行単位で出力する。
//    入出力ともにバッファリングを行う。
//
// ●java.io.PrintWriterクラス
//  基本データ型やオブジェクトを文字にして出力するクラスである。
//
// ●PrintWriterクラスのコンストラクタ。
//    PrintWriter(Writer obj)
//      機能:WriterクラスのオブジェクトobjからPrintWriterクラスの
//      オブジェクトを作成。 
//
//  ●PrintWriterクラスのメソッド
//    public void println(String s)
//      機能:文字列sを書き込む。その後、改行。
//    public void close()
//      機能:ストリームを閉じる。
//
////////////////////////////////////////////////////////////////////////////////

import java.io.*;

class j624 {

  public static void main(String args[]) {
    try { 
      // 入力ストリームを作成。
      FileReader fr = new FileReader(args[0]); // args[0]は入力ファイル名。
      BufferedReader br = new BufferedReader(fr);

      // 出力ストリームを作成。
      FileWriter fw = new FileWriter(args[1]); // args[1]は出力ファイル名。
      BufferedWriter bw = new BufferedWriter(fw);
      PrintWriter pw = new PrintWriter(bw);

      // 読込みループ。
      String line; // 読み込まれた1行。
      while( (line = br.readLine()) != null ) {
        pw.println(line);
      }

      // 入力・出力ストリームを閉じる。
      br.close(); fr.close();
      pw.close(); bw.close(); fw.close();
    } catch ( Exception e ) { }
  }

} 
実行結果
% type in.txt
123
abc
日本語

% javac j624.java
% java j624 in.txt out.txt

% type out.txt
123
abc
日本語