подача ввода в процесс Java из пакетного файла - PullRequest
3 голосов
/ 02 мая 2010

Если у меня есть простая Java-программа, которая обрабатывает строки текста из стандартного ввода, то я могу запустить ее с помощью следующего сценария:

@Echo off
java Test < file.txt
pause
exit

Этот сценарий перенаправляет строки ввода из файла file.txt вJava-программа.

Есть ли способ избежать использования отдельного файла?Или это самый простой способ?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 02 мая 2010

Используйте трубу .

Это простое Java-приложение просто выводит строки из stdin:

public class Dump {
  public static void main(String[] args) {
    java.util.Scanner scanner = new java.util.Scanner(System.in);
    int line = 0;
    while (scanner.hasNextLine()) {
      System.out.format("%d: %s%n", line++, scanner.nextLine());
    }
  }
}

Вызывается с этим пакетным файлом:

@ECHO OFF
(ECHO This is line one
ECHO This is line two; the next is empty
ECHO.
ECHO This is line four)| java -cp bin Dump
PAUSE

... будет напечатано:

0: This is line one
1: This is line two; the next is empty
2:
3: This is line four
0 голосов
/ 02 мая 2010

Вы можете сделать простое:

$ java Test < file.txt

Но если вам абсолютно необходима команда pause, вам придется выполнить ее в сценарии или выполнить паузу кода в классе Test.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...