Scannerクラスの読み込み
PKU2402の問題でSなコードを書くために以下のようなコードをかいた。
for(;;){ long l=new Scanner(System.in).nextLong(); // 以下処理 }
ローカルで実行すると、問題なく動くのだけれども、PKUに送るとRuntime Errorになる。
ループ文の外で一度だけScannerを生成した場合のときはAcceptする。標準入力がファイルの場合、うまく動かないのではないかとおもい、テストしてみたら案の定が投げられていた。Scannerの実装をみてみると、入力をバッファにためられるだけためてからトークンを取り出す仕組みになっていたので、何度目かにファイルをすべて読みこみ終えてしまい、例外を投げたのだろう。バッファのサイズはfinalなので、こういう風に書くのは無理だぁーー!こんなことしてる場合じゃないorz。