System.console () с вводом файла - PullRequest
2 голосов
/ 08 марта 2011

Я хотел бы использовать java.io.Console.Я пытаюсь сделать это, вызывая System.console().Это работает ... иногда.

Это нормально, когда я запускаю свою программу так:

java classn

Однако я хотел бы прочитать стандартный ввод из файла с именем input.in.Когда я пытаюсь сделать это через:

java classn < input.in

Я получаю исключение нулевого указателя:

Exception in thread "main" java.lang.NullPointerException
        at classn.main(classn.java:9)

Есть ли исправление, чтобы я мог использовать Console вместе с вводом из исправления?Я понимаю, почему он возвращает null, я просто хотел бы знать, есть ли способ подключить Console к тому, что передается через файл.

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

Ну, вам нужно проверить, вернул ли System.console() ноль. Если бы это было так, вам бы пришлось работать без интерактивной консоли - обойти это невозможно. Вы можете использовать System.in для получения информации из перенаправленного файла.

Альтернативой может быть опция командной строки для чтения соответствующих данных из заданного имени файла, но затем для взаимодействия с консолью.

2 голосов
/ 08 марта 2011

Часто самым простым способом является использование класса Scanner, привязанного к System. в:

 Scanner sc = new Scanner (System.in);

Позвоните в вашу программу

 cat foo | java Sample 

на Linux / Unix / BSD или

 type foo | java Sample 

в Windows.

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