教えて!goo : IOException ってどういうときに起こるのでしょうか?

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1706712


キーボード入力じゃ、起こらないよね。。。
超初心者にJavaってめんどくさいと思われてしまう、一つの重大な問題がこんな感じの

BufferedReader reader 
 = new BufferedReader(new InputStreamReader(System.in));
String line = reader.readLine()

標準入力プログラムの面倒くささ。これimportも必要だし、IOExceptionの例外処理も必要。ついでにこのコードを理解するには、ストリームと文字列(ライター)の違いを知らないといけないし、ということは継承やインターフェイスも知る必要があるし、さらにDecoratorパターンだし。


言い換えると、汎用的なんだけどショートカットお便利クラスが標準でついてねぇなぁという悲しさか。まぁ、その昔に比べるとこれでも全然簡単なのかもしれませんが。


Java5以降はScannerがある。昔からこれがあればよかったのだが。あるいはJava1.4以前がかなりマイナーな世の中にはやくなってくれれば。