08. ファイルへ書き込む WFile.java その2

バッファの仕組みを調べてみる。

 

■WFile.javaを変更する

バッファサイズを小さくする。

(変更前)
byte[] buff = new byte[4096] ;    // バッファ定義
(変更後)
byte[] buff = new byte[2] ;    // バッファ定義

 

ファイルへの書き込み直後に、「A」をプリントさせる。

(変更前)

 		while( true ) {
try {
int n = System.in.read( buff ) ; // キーボード読み込み
if ( buff[0] == '/' ) { break; } // 終了
outFile.write( buff, 0, n ) ; // 書き出し
} catch( Exception e ) {
System.exit( 1 ) ;
}
}

 (変更後)

 		while( true ) {
try {
int n = System.in.read( buff ) ; // キーボード読み込み
if ( buff[0] == '/' ) { break; } // 終了
outFile.write( buff, 0, n ) ; // 書き出し
System.out.println( "A" ); // 追加する
} catch( Exception e ) {
System.exit( 1 ) ;
}
}

 

 ■コンパイル

 $ javac WFile.java

 

■実行

 $ java WFile test.txt
"/" で終了します。
aiueo
A
A
A
あいうえお
A
A
A
A
A
A
/

 

  • バッファを4096から2に変更してみたが、4に変更してみても違いがわかる。
  • 「A」がプリントされるタイミングが分かるので、プログラムの進行が実感できる。