06. ファイルの読み込み RFile.java その2
- 2006.08.15
- Java
// ファイルを読み込んで表示する
この部分で、「例外を発生させないで」読み込みを終了させる。
System.out.write( buff, 0, n ) ; これが例外を発生させていた。
ファイルが最後に達したときに n の値が -1 になるので、
System.out.write( buff, 0, -1 ) ; となってしまっていた。
スマートなRFile.java
//
// RFile.java
//
// ファイルの内容を表示する
//
// 使い方 java RFile (ファイル名)
//
import java.io.*;
public class RFile {
public static void main( String[] args ) {
byte[] buff = new byte[4096]; // バッファ定義
boolean bStop = false; // 終了判断フラグ
FileInputStream inFile = null; // ファイル読取用オブジェクト
// ファイル名を指定していなかったら終了する
if ( args.length <= 0 ) {
System.out.println( "ファイル名を指定してください!" ) ;
System.exit( 1 ) ;
}
// ファイルを準備する
try {
inFile = new FileInputStream( args[0] ) ;
} catch( Exception e ) {
System.err.print( "ファイル[" ) ;
System.err.print( args[0] );
System.err.print( "]を開く事ができません!" );
System.exit( 1 );
}
// ファイルを読み込んで表示する
while ( true ) {
try {
int n = inFile.read( buff ) ; // 読み込む
if ( n == -1 ) break ; // -1を受け取ったら終了させる
System.out.write( buff, 0, n ) ; // 表示する
} catch( Exception e ) {
System.exit( 1 ) ; // ループ終了
}
}
// ファイルを閉じる
try {
inFile.close() ;
} catch( Exception e ) {
System.err.println( "ファイルを閉じることができません!" ) ;
System.exit( 1 ) ;
}
}
}
-
前の記事
04. Tips ターミナル 2006.08.15
-
次の記事
07. ファイルへ書き込む WFile.java 2006.08.15