运行 java 文件时,我在从命令行读取参数和标准输入时遇到问题。我可以单独读取参数,也可以单独读取标准输入,但不能一起读取;例如:
java myFile 6 2 < numbers.txt
我可以让它将 6 和 2 存储在数组中,但它也只存储“<”和“text.txt”。我无法在网上找到任何描述类似问题的内容,因此不确定从哪里开始。
最佳答案
命令行参数在 String[]
中接收main
的类型参数方法。输入重定向的完成方式与在命令行调用的任何其他进程相同。可以通过读取 stdin
来检索字节直到EOF
已达到。
命令:java myClass myArg < myFile
public static void main(String[] args)
{
System.out.println("Arg 1 = " + args[0] + "\nStdin = ");
try (InputStreamReader isr = new InputStreamReader(System.in)) {
int ch;
while((ch = isr.read()) != -1)
System.out.print((char)ch);
}catch(IOException e) {
e.printStackTrace();
}
}
了解更多信息:
http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html http://docs.oracle.com/javase/tutorial/essential/io/cl.html
关于java - 从命令行 java 读取标准输入和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21194057/