я сделал следующее:Как читать входные данные из STDIO как целая строка в Java
1) Создан BufferedReader
;
2) Читать построчно из stdio
и приложил его к StringBuilder
br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder everything = new StringBuilder();
String line;
while((line = br.readLine()) != null) {
everything.append(line);
}
System.out.println(everything.toString());
Но я не могу выйти из цикла. Когда я проходил, например, такой ввод и нажимал ENTER
Я все еще в цикле.
aut Caesar aut nihil
aut aut
de mortuis aut bene aut nihil
Как я могу решить эту проблему? Или, может быть, я должен использовать другой метод, считая от stdio
?
'stdin' открыт поток таким образом есть возможность того, что на другом конце некоторое содержание производится и будет посылать, поэтому приложение должно ждать его каждый раз, когда вы звоните' ReadLine() '. Чтобы решить эту проблему, вы можете использовать некоторую последовательность остановки, чтобы решить, следует ли выйти из цикла. Такая последовательность может быть как слово «конец», «стоп», или, может быть, ни слова, просто пустая строка. Таким образом, ваше решение может выглядеть как 'while ((line = br.readLine())! = Null &&! Line.equals (" stop ")) {...}' – Pshemo
Возможно, вы сможете создать 'EOF' нажатие ''. Зависит полностью от консоли, которую вы используете для запуска программы. –
AJNeufeld
Почему вы не используете класс Scanner для чтения пользовательского ввода, это намного проще, чем этот подход. –