繁体   English   中英

你怎么能让BufferedReader.readLine()不挂?

[英]How can you make BufferedReader.readLine() not hang?

有没有办法使BufferedReader.readLine()不挂?

我正在创建一个服务器:

  • 检查客户端是否已提供任何输入。
  • 如果没有,它会执行其他代码并最终循环回检查客户端的输入。

如何在不运行readLine()情况下检查客户端是否已提供任何输入? 如果我运行readLine() ,线程将挂起,直到输入传递?

您可以使用BufferedReader.ready() ,如下所示:

BufferedReader b = new BufferedReader(); //Initialize your BufferedReader in the way you have been doing before, not like this.

if(b.ready()){
    String input = b.readLine();
}

如果输入源没有将任何内容放入尚未读取的流中,则ready()将返回true

编辑:只需一个注释,即使只有一个字符,ready也会返回true 您可以使用read()来检查是否有换行符或回车符,这些表示行尾。

有关更多信息: http//docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#ready()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM