一个常见的场景是,如果stdin有输入,则使用输入的数据进行处理,否则自行获取数据再处理。

https://rosettacode.org/wiki/Check_input_device_is_a_terminal 这里列了很多语言的实现。

java的实现参见 http://stackoverflow.com/a/23419451/522024 这里,至少目前是需要jni介入的。