ServerSocket我正在使用 a向 a 發(fā)送多行PrintWriter。PrintWriter printWriter = ...printWriter.write("1");printWriter.write("2");printWriter.write("3");然后我試圖用一個(gè)接收它BufferedReaderServerSocket serverSocket = ...Socket socket = serverSocket.accept();BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));System.out.println(bufferedReader.readLine());我當(dāng)然會(huì)關(guān)閉所有資源,我編寫(xiě)此代碼只是為了可視化問(wèn)題??梢源蛴?,123但應(yīng)該打印1。我該如何解決這個(gè)問(wèn)題?
1 回答

交互式愛(ài)情
TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
根據(jù)文檔:
讀行
public String readLine() 拋出 IOException
讀取一行文本。一行被認(rèn)為是由換行符('\n')、回車(chē)符 ('\r')或回車(chē)符后緊跟換行符之一終止。
返回:?包含 line 內(nèi)容的 String,不包括任何行終止字符,如果已?到達(dá)流末尾,則返回null
問(wèn)題是您正在編寫(xiě)沒(méi)有換行符的字符串。但BufferedReader
需要您未提供的上述行字符之一。一旦到達(dá)流的末尾,它就會(huì)輸出整個(gè)緩沖區(qū)。
所以,使用其中之一
printWriter.write("1\n");
printWriter.write("1\r\n");
printWriter.write("1\r");
添加回答
舉報(bào)
0/150
提交
取消