如果A有一个包含如下内容文件。如何在标准输入中输入内容,并在have程序中逐行读取它。如果我使用Scanner,它不会一次获取所有内容。它只在每次输入后逐行输入。文件内容
10 Bla Blah Blah
20 Bla Bla Bla
20 Bpa bla bla
40 Bla Bla Bla发布于 2017-09-02 15:17:33
下面的代码从输入中获取字符,直到用户在Linux/Unix中点击Ctrl+D或在Windows中点击Ctrl+Z:
public static void main(String[] args) throws IOException {
String text = readUntilEOF(System.in);
}
private static String readUntilEOF(InputStream in) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
char ch;
do {
ch = (char) in.read();
stringBuilder.append(ch);
}while(ch != CharacterIterator.DONE);
stringBuilder.deleteCharAt(stringBuilder.length() - 1);
return stringBuilder.toString();
}此代码的缺点是用户必须在每行末尾按Enter键,因为如果他们在一行末尾按Ctrl+D/Ctrl+Z,则该行将被完全忽略。如果你想避免这个问题,你可以使用另一个字符来显示你的输入的结尾。
https://stackoverflow.com/questions/46011254
复制相似问题