- PR -

キーボードからの入力について。

1
投稿者投稿内容
るしぃ。
常連さん
会議室デビュー日: 2004/09/16
投稿数: 21
投稿日時: 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です。

以上、宜しくお願い致します。

MINE
会議室デビュー日: 2003/07/02
投稿数: 17
投稿日時: 2004-09-16 21:11
こんばんはMINEです

標準入力の設定がキーボードになっていないのでは
ないでしょうか。

たとえばリダイレクトや、System#setIn等で
標準入力に空のファイルを指定すると同様の現象が発生します。

はずしていたらすみません
るしぃ。
常連さん
会議室デビュー日: 2004/09/16
投稿数: 21
投稿日時: 2004-09-17 09:41
MINEさん、ご返信どうもありがとうございます。

標準入力の設定というのが、どのように行ってよいものか
わからなかったため、ちょっと調べてみます。
どなたか、お分かりなる方いましたら、教えてください。
基本的なことを質問しているかもしれませんがお許し下さい。

以上、宜しくお願い致します。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-09-17 10:23
unibon です。こんにちわ。

引用:

あさむらさんの書き込み (2004-09-16 19:40) より:
ちなみに、エクリプス上で起動した時は、
readLine();で待機状態となったのですが、
AIX上で、起動しましたら、このような現象がおきてしまいました。
バージョンは、java1.3です。


AIX でのみ起こっているのでしょうか。Windows(や Linux)では起こらないのでしょうか。
ちなみに、現象としては、キーボードからたとえば a と b と c と Enter の4つのキーを押すと、readLine が null を返す、という類のことだと考えて合っているでしょうか?

引用:

あさむらさんの書き込み (2004-09-16 19:40) より:
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String data = br.readLine();


とりあえず、BufferedReader を使わずに InputStreamReader から読み込める文字(char)を、1文字ずつ16進数ダンプしてみてはどうでしょうか。改行コードがなにか変なのかもしれません。BufferedReader は環境に依存しないコードですが、InputStreamReader はその中で使っているクラスが環境に依存するコードなので、問題があるとしたら InputStreamReader(やそれより下位)の段階のはずです。
るしぃ。
常連さん
会議室デビュー日: 2004/09/16
投稿数: 21
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)