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");
添加回答
举报
0/150
提交
取消