以下のコードを使用して、コマンドラインで stdin から sql ステートメントを読み取ります。
BufferedReader in = null;
StringBuilder sb = new StringBuilder();
String line = null;
try {
in = new BufferedReader(new InputStreamReader(System.in));
while((line = in.readLine()) != null) {
sb.append(line);
}
} finally {
if (in!=null) in.close();
}
私の問題は、アプリケーションが標準入力からのデータを使用して実行する必要がある場合と、そうでない場合があることです (パイプ入力なし)。上記のコードに入力がない場合、in.readLine()
ブロックします。何もパイプされていない場合でも実行できるように、このコードを書き直す方法はありますか?
更新: アプリケーションは、キーボードからではなく、コマンド ラインからパイプされたデータを期待するように設計されています。