我正在研究用戶在標準輸入中輸入文本然後以正確對齊方式返回此文本的小程序。的代碼,其中輸入是由線讀取線Java中的標準輸入爲空
我的主塊:
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
for (String nextLine, line = br.readLine(); line != null; line = nextLine) {
nextLine = br.readLine();
// Work with "line"
}
}
catch (IOException ex) {
System.exit(-1);
}
}
但輸入從未讀過所有。始終缺少最後一行,並且line
永遠不會是null
。經過小小的調試後,我發現br.readLine()
行nextLine = br.readLine();
不會返回任何東西(從字面上看,它不會返回任何東西,不會返回任何異常),程序會繼續運行,但不會執行任何其他代碼行。我也嘗試從文件讀取,並且不會發生此問題。