05. ファイルの読み込み RFile.java
- 2006.08.13
- Java
プログラムは人間同様、食べる、消化、出す。というような流れになる。今回は、食べるの部分。ファイルを食べて、そのまま出すというプログラム。
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 ( !bStop ) { try { int n = inFile.read( buff ) ; // 読み込む System.out.write( buff, 0, n ) ; // 表示する } catch( Exception e ) { bStop = true ; // ループ終了 } } // ファイルを閉じる try { inFile.close() ; } catch( Exception e ) { System.err.println( "ファイルを閉じることができません!" ) ; System.exit( 1 ) ; } } }
コンパイル
$ javac RFile.java
実行
$ java RFile Sample.txt こんにちは。 サンプルのテキストです。 改行コードは、LFにしています。
ポイント
- Sample.txtの文字コードはShift_JIS、改行コードはLF にする。(読みやすくするため)
- readメソッドでファイルを読み込んだら、その長さをn(バイト)に格納する。
- nに -1 が渡されると、ファイルの終了に達したことになる。
- System.our.write( buff, 0, n ); はbuffの内容を先頭からnバイト分を出力する。
- バッファは、4096に指定しているが、他の値でも試してみる。
-
前の記事
00. ターミナルの設定 2006.08.13
-
次の記事
Apache .htaccessでアクセス制限 2006.08.14