06. ファイルの読み込み RFile.java その2
sasaki 火曜, 2006-08-15 11:42
// ファイルを読み込んで表示する この部分で、「例外を発生させないで」読み込みを終了させる。 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 ) ; } } }
05. ファイルの読み込み RFile.java 07. ファイルへ書き込む WFile.java
|