据我了解,这不合法,因为程序一次只能采用两种形式的参数输入中的一种。但是,我并不是100%肯定我的答案,所以如果有人能够澄清,那将非常感激。
答案 0 :(得分:0)
是的,这是合法的。命令行参数与从标准输入读取的字符无关。
例如,这段代码非常合适:
public class Example {
public static void main(String[] args) {
System.out.println("Printing command line arguments: ");
for(String s: args) {
System.out.println(s);
}
System.out.println("Printing from standard in: ");
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
System.out.println(sc.next());
}
sc.close();
}
}
答案 1 :(得分:0)
没问题。每个正在运行的程序(在Windows和基于Unix / Linux的操作系统中)都具有:
它可以自行决定使用它们(有明显的限制,例如无法修改参数或写入输入流)。
与Servlet及其处理请求相比,可能会出现一些混淆 - 请求可以作为字节数组读取,作为流或通过某种框架将其转换为对象模型或映射它参数。然而,这种情况是不同的,因为HTTP请求确实只包含一个数据流(为简单起见,我省略了标题),因此您必须选择使用哪种方法,并且不能同时使用这两种方法。
纯Java进程及其main()
方法的情况不同,因为参数和输入流是不同的数据片段,而不仅仅是查看相同数据的不同方式。