我正在使用下面的代码在命令行上从标准输入读取 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()
阻塞。有没有办法重写这段代码,以便在没有任何管道输入的情况下它仍然可以运行?
更新:该应用程序旨在期望来自命令行的管道数据,而不是来自键盘的数据。