2 回答

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
問(wèn)題是這樣的:
Scanner scanner = new Scanner(System.in);
您完全忽略了正在打開(kāi)的文件,而是從標(biāo)準(zhǔn)輸入中讀取。它實(shí)際上并不是無(wú)限循環(huán);而是無(wú)限循環(huán)。它正在等待輸入。

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
您的代碼不是在讀取文件;而是在讀取文件。它正在等待您輸入內(nèi)容。
如果你想讀取一個(gè)文件,你需要將文件傳遞給 Scanner ,而不是System.in.
然而,與使用 BufferedReader 或最好使用 Streams 相比,使用 Scanners 通常是錯(cuò)誤的文件讀取模式
List<Integer> integerList = new ArrayList<>();
try (Stream<String> stream = Files.lines(Paths.get("in.txt"))) {
stream.flatMap(line -> Arrays.stream(line.split("\\s+")))
.map(Integer::parseInt)
.forEach(integerList::add);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(integerList);
添加回答
舉報(bào)