ServerSocket我正在使用 a向 a 發(fā)送多行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條經(jīng)驗 獲得超3個贊
根據(jù)文檔:
讀行
public String readLine() 拋出 IOException
讀取一行文本。一行被認為是由換行符('\n')、回車符 ('\r')或回車符后緊跟換行符之一終止。
返回:?包含 line 內(nèi)容的 String,不包括任何行終止字符,如果已?到達流末尾,則返回null
問題是您正在編寫沒有換行符的字符串。但BufferedReader
需要您未提供的上述行字符之一。一旦到達流的末尾,它就會輸出整個緩沖區(qū)。
所以,使用其中之一
printWriter.write("1\n");
printWriter.write("1\r\n");
printWriter.write("1\r");
添加回答
舉報
0/150
提交
取消