v0.122 while (!stdin.eof()) { char c; stdin.read(c); text ~= c; } 上のようなコードで標準入力からchar[]に読み込もうとすると ReadException が投げられる。~ eof()が機能していない。~ .seekable が false だと eof()が機能しないため。~ stdin のところが Fileのインスタンスだったりすると .seekable が true なのですんなり動く。~ readLine()がstdinでも普通に動くのは、このメソッドの中は ReadException を catchするようになっているから。~ 結論、stdin と Streamは同じようには扱えない。 try { while (!stdin.eof()) { char c; stdin.read(c); text ~= c; } } catch (ReadException e) { if (!stdin.eof()) throw e; } readLine() 式の解決法。~ 例外が飛ぶ頃には EOF に達したというフラグが立っている。~ Streamもこれで扱えるので一応同じ扱いはできますが・・・なんかねぇ。~