我堅持與System.in.read()有關的問題。我想打印粘貼到控制檯的所有內容。 我的代碼如下所示:爲什麼不能用system.in.read()得到控制檯最後一行的while循環?
import java.io.IOException;
public class printer {
public static void main(String[ ] args) {
int i;
try {
while ((i = System.in.read()) != -1) {
char c = (char)i;
System.out.print(c);
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}
的問題是,如果粘貼,例如,三線到控制檯程序將然後打印的兩個第一線,但不是第三。這是爲什麼?它打印第三個,如果我按下輸入但第二行和第三行之間有巨大的空間。
我也嘗試將每個字符存儲在一個字符串中,然後在循環後打印整個字符串,但循環永遠不會結束。是他們的一種方法來阻止這個特定的循環(我不知道用戶將有多少行粘貼)
請看看[this](http://stackoverflow.com/questions/1066318/how-to-read-a-single-char-from-the-console-in-java-as-the-用戶類型 - 它)的討論。 – BugProtectionActivist
您正在嘗試的是高度依賴於系統的問題:首先確定粘貼的內容,然後是輸入緩衝區管理。你能說一下你的工作系統(Windows,Linux,...)。無論如何,你應該嘗試記錄你閱讀的字符的代碼。 –