- - PR -
キーボードからの入力について。
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-16 19:40
下記コード(一部)を実行したところ問題が起こってしまいます。
BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String data = br.readLine(); を実行したところ、readLine()部分で待機することなく dataには、nullが入ってしまいます。 IOExceptionは発生していないのですが・・・。 何か考えられる原因がありましたら宜しくお願い致します。 ちなみに、エクリプス上で起動した時は、 readLine();で待機状態となったのですが、 AIX上で、起動しましたら、このような現象がおきてしまいました。 バージョンは、java1.3です。 以上、宜しくお願い致します。 | ||||||||
|
投稿日時: 2004-09-16 21:11
こんばんはMINEです
標準入力の設定がキーボードになっていないのでは ないでしょうか。 たとえばリダイレクトや、System#setIn等で 標準入力に空のファイルを指定すると同様の現象が発生します。 はずしていたらすみません | ||||||||
|
投稿日時: 2004-09-17 09:41
MINEさん、ご返信どうもありがとうございます。
標準入力の設定というのが、どのように行ってよいものか わからなかったため、ちょっと調べてみます。 どなたか、お分かりなる方いましたら、教えてください。 基本的なことを質問しているかもしれませんがお許し下さい。 以上、宜しくお願い致します。 | ||||||||
|
投稿日時: 2004-09-17 10:23
unibon です。こんにちわ。
AIX でのみ起こっているのでしょうか。Windows(や Linux)では起こらないのでしょうか。 ちなみに、現象としては、キーボードからたとえば a と b と c と Enter の4つのキーを押すと、readLine が null を返す、という類のことだと考えて合っているでしょうか?
とりあえず、BufferedReader を使わずに InputStreamReader から読み込める文字(char)を、1文字ずつ16進数ダンプしてみてはどうでしょうか。改行コードがなにか変なのかもしれません。BufferedReader は環境に依存しないコードですが、InputStreamReader はその中で使っているクラスが環境に依存するコードなので、問題があるとしたら InputStreamReader(やそれより下位)の段階のはずです。 | ||||||||
|
投稿日時: 2004-09-17 10:51
----------------------------------------------------------------------------
<unibonさんの書き込みより> AIX でのみ起こっているのでしょうか。Windows(や Linux)では起こらないのでしょうか。 ちなみに、現象としては、キーボードからたとえば a と b と c と Enter の4つのキーを押すと、readLine が null を返す、という類のことだと考えて合っているでしょうか? --------------------------------------------------------------------------- String data = readLine();部分で、「Enter」を押していないにもかかわらず、 待機状態とならず、この部分を通りすぎてしまい、 dataには、nullが入ってしまうんです。 ---------------------------------------------------------------------------- <unibonさんの書き込みより> InputStreamReader から読み込める文字(char)を、1文字ずつ16進数ダンプ ---------------------------------------------------------------------------- すいません、↑上記方法がわからないため、これまた調べてやってみたいと思います。 ご返信ありがとうございました。 [ メッセージ編集済み 編集者: あさむら 編集日時 2004-09-17 10:54 ] | ||||||||
1
