Java IO流学习总结(三)—— readerLine()测试,空行返回值,结束时返回值

Server:

public class server {
    public static void main(String[] args) throws UnknownHostException, IOException {
        ServerSocket server = new ServerSocket(8888);
        while(true) {
            Socket client = server.accept();
            BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
            String str;
            while(null != (str = br.readLine())){
                System.out.println(str+str.isEmpty());
            }
        }
    }
}

Client:

public class client {
    public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException {
        Socket client = new Socket("127.0.0.1",8888);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
        bw.write("efasdfa\r\n");
        bw.write("\r\n");
        bw.flush();
        bw.close();//close后readLine才返回null
    }
}

结果:

efasdfafalse
true

结论:

  • BufferedReader类中的readLine()方法,在遇到\r或\n是返回该行字符串
  • 返回不包含\r\n
  • 如果该行为空,如http响应中响应头和响应实体之间的空行,返回的是空字符串,即 readLine().isEmpty()为true、readLine()==”“为true
  • 遇到输入流中的close(),readLine()返回null,如没有close,报Connection reset异常

猜你喜欢

转载自blog.csdn.net/qq_37969433/article/details/80159283