Подтвердить что ты не робот

Передача строкового буфера в java-программу в IntelliJ debug/run

Как выполнить эквивалент запуска следующей строки в командной строке в IntelliJ или Eclipse....

java MyJava < SomeTextFile.txt

Я попытался предоставить расположение файла в поле "Аргументы программы" "Конфигурация запуска/отладки" в IntelliJ

4b9b3361

Ответ 1

Как сказал @Maba, мы не можем использовать оператор перенаправления ввода (любой оператор перенаправления) в eclipse/intellij, так как нет оболочки, но вы можете имитировать ввод данных из файла через stdin, как показано ниже

       InputStream stdin = null;
        try
        {
        stdin = System.in;
        //Give the file path
        FileInputStream stream = new FileInputStream("SomeTextFile.txt");
        System.setIn(stream);
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
                    br.close(); 
                    stream.close()

        //Reset System instream in finally clause
        }finally{             
            System.setIn(stdin);
        }

Ответ 3

Вы можете использовать BufferedReader для чтения с системного ввода:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}