无法让stdin读入linux上的数组--Java

时间:2017-10-15 20:51:12

标签: java linux

所以我在Linux机器上使用Java而且我目前正在尝试从stdin读取,这样当我运行“java Simulation more~test / locationOfInput / test”时,它需要一个数字流并计算值并打印它们。但是,我的代码在尝试读取值时锁定,我检查空文件,所以我知道它至少接收文件。我目前有这个代码将stdin读入数组

    Scanner input = new Scanner(System.in);
    ArrayList<Integer> values = new ArrayList<Integer>();

    while (input.hasNextInt()) {
        int i = input.nextInt();
        values.add(i);
    }

循环似乎无限运行,我不知道为什么。我是否误解了如何从STDIN读入?

2 个答案:

答案 0 :(得分:0)

您需要使用cat ~test/locationOfInput/test | java Simulation正确重定向输出。

答案 1 :(得分:0)

您有两个选择:

  1. 将输入作为@daniu建议
  2. 传输到程序中
  3. 将文件路径作为参数,并从具有给定路径的文件中读取
  4. 你可以在1个程序中实现它们,所以如果它有一个参数,它会从该文件中读取,否则它将从管道输入中读取。