为了账号安全,请及时绑定邮箱和手机立即绑定

Java套接字:发送多行并接收多行

Java套接字:发送多行并接收多行

胡子哥哥 2023-07-28 15:26:10
ServerSocket我正在使用 a向 a 发送多行PrintWriter。PrintWriter printWriter = ...printWriter.write("1");printWriter.write("2");printWriter.write("3");然后我试图用一个接收它BufferedReaderServerSocket serverSocket = ...Socket socket = serverSocket.accept();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));System.out.println(bufferedReader.readLine());我当然会关闭所有资源,我编写此代码只是为了可视化问题。可以打印,123但应该打印1。我该如何解决这个问题?
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

根据文档:

读行

public String readLine() 抛出 IOException

读取一行文本。一行被认为是由换行符('\n')回车符 ('\r')回车符后紧跟换行符之一终止。

返回: 包含 line 内容的 String,不包括任何行终止字符,如果已 到达流末尾,则返回null

问题是您正在编写没有换行符的字符串。但BufferedReader需要您未提供的上述行字符之一。一旦到达流的末尾,它就会输出整个缓冲区。

所以,使用其中之一

printWriter.write("1\n");
printWriter.write("1\r\n");
printWriter.write("1\r");


查看完整回答
反对 回复 2023-07-28
  • 1 回答
  • 0 关注
  • 76 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信