从命令行java读取stdin和参数

时间:2014-01-17 19:17:00

标签: java

在运行java文件时,我无法从命令行读取参数和stdin。我可以自己阅读和自己的参数,但不能在一起;例如:

java myFile 6 2 < numbers.txt

我可以将它存储在数组中存储6和2但是它只存储“&lt;”和“text.txt”也。我一直无法找到任何在线描述类似问题的内容,所以不确定从哪里开始。

1 个答案:

答案 0 :(得分:2)

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