- ベストアンサー
BufferedReaderの内部動作について
Java入門書などで勉強中の初学者です。 BufferedReaderの動作についてよくわかっていないため、以下の内容にお答えいただけると幸いです。 - BufferedReaderがデフォルトで保持できるデータサイズ - 確保しているバッファサイズを超えた文字数をreadLine()した時にどのような動作になるか - どのような時にデフォルトのバッファサイズを超えるのか - バッファサイズをデフォルトより大きくして指定した場合のデメリット 以上、よろしくお願い致します。 ※OKWAVEより補足:「Webシステム開発」についての質問です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
勉強お疲れ様です。 わかる範囲でお答えします。 1、BufferedReaderがデフォルトで保持できるデータサイズ こちらは公式文書には明記されていませんが8192だと言うのが意見として多いですね。 https://stackoverflow.com/questions/16973843/bufferedreader-default-buffer-size 2、確保しているバッファサイズを超えた文字数をreadLine()した時にどのような動作になるか こちらはコンストラクタの第二引数にバッファサイズを指定することで初心者の方でも検証可能だと思うので是非調べてみてください。 コンストラクタによるバッファサイズの指定の例はこちらです。 以下なら100バイトをサイズとして指定したと言うことになります。 このサイズを超えるものを入れてみてください。 BufferedReader br = new BufferedReader(new InputStreamReader(System.in),100) 3、どのような時にデフォルトのバッファサイズを超えるのか BufferedReader クラスはテキストファイルなどの読み込みなどにも使用されますのでその際には読み込むものが1で回答したサイズを超えれば発生しますね。 4、バッファサイズをデフォルトより大きくして指定した場合のデメリット 単純にメモリを食います。 Webのアプリなどで使う場合は多人数が同時に使用する可能性があるので注意が必要ですね。 以上です。 自身で検証してみることで文法の学習にもなります。 また、なぜこれを知りたいのかも明記すると答えてくれる人も増えるかと思いますよ。
その他の回答 (1)
- maiko04
- ベストアンサー率17% (345/1956)
入門書があるなら書いてあるはずです。 使い方だけ読んでいたらトラブルのもとですよ。 あなたが質問してきた内容はあなたが勉強する内容です。 入門書を読んで、PCなどで動かしてみてどうなるかというのも 勉強のうちです。 新しい事が出てくるたびにここに質問するつもりですか? それでは身につきません。
お礼
丁寧な解答ありがとうございました。とてもわかりやすくまとまっており助かりました。 また海外サイトや自身で実装して確認するなどもを行い、質問サイトだけに頼らず、調べる術も学習していきたいと思います。 ありがとうございました。