Как запустить программу на стандартном вводе? - PullRequest
0 голосов
/ 07 сентября 2018

Я создал реализацию Sokoban-решателя, и код в настоящее время выглядит следующим образом (не собирается публиковать весь код):

public Sokoban() throws Exception{
myList = new ArrayList<Integer>();

file = new File("C:/Users/joaki/Desktop/sokoban/readin.txt");
sc = new Scanner(file);
sc.reset();
List<String> lines = new ArrayList<>();
while (sc.hasNextLine()) {
    line = sc.nextLine();

Как видите, я просто использую путь к файлу, чтобы иметь возможность прочитать файл со сканера, но в соответствии с моим назначением он должен выглядеть примерно так:

Чтобы быть более конкретным, если "map1.txt" - это файл с картой сокобана, Агентская программа "агент" получит map1.txt, отправленный на стандартный ввод. Под unix / linux это соответствует запуску программы типа

agent < map1.txt

Я не совсем понимаю, что они означают, я должен запускать программу из аргумента командной строки или из cmd?

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

При создании Scanner используйте это:

sc = new Scanner(System.in);

Он сообщит сканеру, что он считывает данные со входа по умолчанию.

0 голосов
/ 07 сентября 2018

Вместо того, чтобы программа читала файл, она должна читать их из пользовательского ввода - так что да, вы должны запустить программу из командной строки. Это означает, что ваша программа должна получать данные от System.in, а не открывать файл напрямую:

sc = new Scanner(System.in);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...