java - BufferedReader readLine() 在 while 循环中不起作用

标签 java bufferedreader

当我在 while 循环 block 内调用 readLine() 时,不知何故,即使我按下 Enter 键,输入也不会完成。看起来,它创建了一个新行,但仍在等待行输入终止。

public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  InputStreamReader isr = new InputStreamReader(System.in);
  BufferedReader br = new BufferedReader(isr);

  String line = "";
  while(!line.equals("End")){
    line = br.readLine();
    System.out.println("String from keyboard not working : "+line+"\n");
  }
  
  while((line = br.readLine())!=null) {
    System.out.println("String from keyboard in while loop : "+line+"\n");
  }
}

当我将 readline() 放在 while 的条件部分顶部时,它工作得很好。 我想知道为什么前者 while 不起作用。

最佳答案

不太确定您遇到了什么麻烦

但是如果我在输入处运行你的代码

test
String from keyboard not working : test

End
String from keyboard not working : End

kkk
String from keyboard in while loop : kkk

然后如果我输入 ctrl-d 那么第二个循环将终止

即使我按下 Enter, enter 也不会终止输入,请尝试 ctrl-d

关于java - BufferedReader readLine() 在 while 循环中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52250850/

相关文章:

Java 在 BufferedReader.read for char 之后抛出 NumberFormatException 错误

java - 如何从文件读取器中删除某些值(使用 ArrayList)?

java - 读取文本文件(我已经知道)然后在 GUI 中显示它?

java.io.InputStreamReader.ready() 阻止执行

Java读取文件并输出到控制台

java - 扩展类不能继承方法吗?

java - 获取带有注释的所有类并将它们添加到android中的hashMap

Java - 静态数组列表中对象的垃圾数组列表字段

java - 仅显示 MPAndroidChart 中的部分值

java - 无效类异常 : <class>; incompatible types for field <fieldname>