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」がプリントされるタイミングが分かるので、プログラムの進行が実感できる。