PrintWriter 的Write()方法和println()方法有何細微的區別
阿新 • • 發佈:2019-01-09
關於某個問題:
在伺服器端和客戶端產生一個Socket 後,
兩邊各自用getIputStream()和getOutputStream()方法,構造各自的輸入輸出流。
其中伺服器端的Socket ss
BufferedReader is=new BufferedReader(new InputStreamReader(ss.getInputStream()) );
PrintWriter os=new PrintWriter (new OutputStreamWriter(ss.getOutputStream()) );
os.writer(“一個亂七八糟的字串”);
客戶端的Socket cs
BufferedReader is=new BufferedReader(new InputStreamReader(cs.getInputStream()) );
PrintWriter os=new PrintWriter (new OutputStreamWriter(cs.getOutputStream()) );
System.out.println(is.readLine());
(當然這兩個肯定不是一個類檔案中噢!)
按理說,應該是ss的 os對應著cs的 is. 為什麼在伺服器端寫入了,在客戶端這邊沒法讀出來呢?
另外,如果伺服器端用os.println(“字串”);就好使了。
請問這是問什麼?
原始碼分析根本原因:
write:
而println(舉個例 其他print也是一樣道理):
————print
————println(重點來了)
所以應了這個回答:
可以確定就是flush和\r\n的問題
不信?
這兒還真重新整理和換行缺一都不可以額~