码迷,mamicode.com
首页 > 其他好文 > 详细

关于BufferefReader.readLine()方法的理解

时间:2016-05-21 19:04:47      阅读:494      评论:0      收藏:0      [点我收藏+]

标签:

  有以下代码:      

 1 BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in));
 2 String msg=null;
 3 System.out.println("out of while loop!");
 4 while((msg=localReader.readLine())!=null){
 5     System.out.println(msg)
 6     if(msg.equals("bye")){
 7         break;
 8     }
 9                     
10 }    

 

  本来以为localReader.readLine()读取不到数据时会返回null,结果执行代码后不输入数据时一直停留在while循环体内等待,故readLine()方法是一个阻塞函数。Java API文档如下描述:

public String readLine()throws IOException
  Reads a line of text. A line is considered to be terminated by any one of a line feed (‘\n‘), a carriage return (‘\r‘), or a carriage return followed immediately by a linefeed.

  表示该方法读取一行文本,当遇到换行符"\n",回车符"\r"或者回车符后面紧跟着换行符时,该行结束并返回。没有数据时,将会一直处于等待状态。因此在进行网络连接时,应该避免使用该方法。

关于BufferefReader.readLine()方法的理解

标签:

原文地址:http://www.cnblogs.com/wuchaodzxx/p/5515316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!