-2
我試過兩個版本,但都反覆打印出程序的其他部分。BufferedReader不會阻止輸入
版本1(帶有換行符)
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
while(true) {
String input = br.readLine();
if(input != null) {
SomeRequest req = new SomeRequest();
req.text = input;
client.sendTCP(req);
} else {
System.out.println("non stop..."); <-- this continously prints
}
}
}
第2版(無新線)
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
while(true) {
String input = br.readLine();
if(input != null) {
SomeRequest req = new SomeRequest();
req.text = input;
client.sendTCP(req);
} else {
System.out.print("non stop..."); <-- this continously prints as well?
}
}
}
版本3(拋出異常)
try(Scanner sc = new Scanner(System.in)) {
String input = "";
System.out.println("Enter to send");
while(true) {
if(!sc.hasNextLine()) {
input = sc.nextLine();
SomeRequest req = new SomeRequest();
req.text = input;
client.sendTCP(req);
} else {
System.out.println("not sending");
}
}
}
我試着讓用戶可以在控制檯上打印一些內容,將其發送到服務器。但現在該程序只是打印不停止...
爲什麼即使打擾使用BufferedReader? –
爲什麼你期望print和println的行爲有所不同?我認爲你的代碼只有一個版本就足夠了,因爲它們在你的問題的背景下幾乎相同。 –
[for循環在Java中運行3次後可能會重複下一次輸入](http://stackoverflow.com/questions/23720118/for-loop-in-java-runs-3-times-before-taking-next-輸入) –