CpCommand2.java



/**
 * ファイルの内容をバイト単位で
 * コピーするクラス(その2)
 */
import java.io.*;
public class CpCommand2 {

 /** 最初に呼び出されるメソッド */
    public static void main( String argv[] ) {
        File inFile;            // 読み込みファイル
        File outFile;           // 書き出しファイル
        FileInputStream fis;    // ファイルから読み込むメソッドを提供
        FileOutputStream fos;   // ファイルに書き出すメソッドを提供
        try {
            inFile = new File( argv[0] );   // 読み込み元のファイル
            outFile = new File( argv[1] );  // 書き出し先のファイル
            fis = new FileInputStream( inFile );   // 読み込みのストリーム
            fos = new FileOutputStream( outFile ); // 書き出しのストリーム
            int b;
            while( ( b = fis.read() ) != -1 ) {  // 1バイト単位で入力
                fos.write( (byte)b );            // 1バイト単位で出力
            }
            fis.close();   // 読み込みのストリームのクローズ
            fos.close();   // 書き出しのストリームのクローズ
        }
        catch( ArrayIndexOutOfBoundsException e ) {  // コマンド引数が不足
            System.err.println(
               "Usage:java CpCommand2 infile outfile");
            System.exit(-1);
        }
        catch( FileNotFoundException e ) {  // 読み込みファイルが存在しない
            System.err.println(
                        argv[0] + " not found.");
            System.exit(-1);
        }
        catch( IOException e ) {  // 入出力のエラーが発生
            System.err.println("IO Error....");
            System.exit(-1);
        }
        catch( Exception e ) {  // エラーが発生
            System.err.println("Error....");
            System.exit(-1);
        }
    }
}