猿问

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

ServerSocket我正在使用 a向 a 发送多行PrintWriter。


PrintWriter printWriter = ...

printWriter.write("1");

printWriter.write("2");

printWriter.write("3");

然后我试图用一个接收它BufferedReader


ServerSocket serverSocket = ...

Socket socket = serverSocket.accept();

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));


System.out.println(bufferedReader.readLine());

我当然会关闭所有资源,我编写此代码只是为了可视化问题。可以打印,123但应该打印1。我该如何解决这个问题?


胡子哥哥
浏览 77回答 1
1回答

交互式爱情

根据文档:读行public String readLine() 抛出 IOException读取一行文本。一行被认为是由换行符('\n')、回车符 ('\r')或回车符后紧跟换行符之一终止。返回: 包含 line 内容的 String,不包括任何行终止字符,如果已 到达流末尾,则返回null问题是您正在编写没有换行符的字符串。但BufferedReader需要您未提供的上述行字符之一。一旦到达流的末尾,它就会输出整个缓冲区。所以,使用其中之一printWriter.write("1\n");printWriter.write("1\r\n");printWriter.write("1\r");
随时随地看视频慕课网APP

相关分类

Java
我要回答