PrintWriter 的Write()方法和println()方法有何细微的区别

关于某个问题:

在服务器端和客户端产生一个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的问题

不信?
这里写图片描述

这儿还真刷新和换行缺一都不可以额~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章