zoukankan      html  css  js  c++  java
  • 关于BufferefReader.readLine()方法的理解

      有以下代码:      

     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 (' '), a carriage return (' '), or a carriage return followed immediately by a linefeed.

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

    联系方式:wuchaodzxx@126.com
  • 相关阅读:
    java生成验证码
    SpringBoot定时任务
    事务管理
    Windows 2008 Server R2双网卡负载均衡
    HP Proliant DL580 gen9 阵列卡P440AR 高速缓存 被禁用
    Kali Debian 修改时区
    First Py From Py
    C++头文件#include<bits/stdc++.h>
    排序算法
    运算符优先级
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/5515316.html
Copyright © 2011-2022 走看看