アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも参考にさせて頂いております佐藤と申します。
JAVA言語を勉強し初めて数ヶ月程度ですが、楽しさが分かって参りました。

質問させて頂きたい内容は、ループ処理(キーボードや入力ファイルがNULLになるまで繰り返す)でのキーボード入力をどうすれば終了させられるかです。

//読込チェック=NULLならば処理を終了させる
while((check = buf.readLine())!=null){
char[] src = check.toCharArray();

ソースの一部ですが、これでは入力ファイルがNULLになれば終了出来ますが、キーボードからの入力だとNULL(何も入力せずにエンター)でも終了しません。
原因が分かる方はいらっしゃいますでしょうか?

宜しくお願い致します。

A 回答 (1件)

BufferedReader#readLine() がnullを返す条件は、ストリームの終端に達した場合です(APIのドキュメントを参照して下さい)。

標準入力(キーボード)からの入力ですと、Ctrl + D を押した場合にnullが返ってきます。お試し下さい。


なお、ご質問にあるように何も入力をせずにエンターを入力した場合は、"" (空文字列) を入力したことになります。"" と nullは違うので、終了しません。
    • good
    • 0
この回答へのお礼

大変ご丁寧な解答をありがとうございます。
Ctrl + D で正常終了致しました。

キーボードからの入力だと""扱いになってしまうんですね。
全くの盲点でした。

勉強になりました。
とても感謝しております。

お礼日時:2007/06/27 22:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!