黑马程序员技术交流社区
标题:
socket
[打印本页]
作者:
jialianghao
时间:
2016-4-14 10:19
标题:
socket
客户端和服务端进行传输时。我看视频怎么都用PrintWriter out=(s.getOutputStream(),true);
不应该是OutputStream out=(new OutputStreamWriter(s.getOutputStream()));吗???两个语句有什么关系吗?
作者:
IT金城武
时间:
2016-4-14 11:29
打印流其实就是一个输出流,而且打印流构造方法里可以传入一个boolean类型,true就是自动刷新
作者:
「AτS」
时间:
2016-4-14 12:05
本帖最后由 「AτS」 于 2016-4-14 12:06 编辑
PrintWriter out=(s.getOutputStream(),true); 这句语句后面是用了小括号括起来的,看到没,为什么呢?
因为PrintWriter的其中一个构造函数是这样的:
PrintWriter(OutputStream out, boolean autoFlush)
通过现有的 OutputStream 创建新的 PrintWriter。
上面这个方法相当于是将字节流转成了字符流, 他是传入字节流以创建了新的PrintWriter对象;
OutputStream out=(new OutputStreamWriter(s.getOutputStream())); 这句话里面你获取到了字节流, 然后又用OutputStreamWriter转成了字符流,
并作为了参数,左边是用OutputStream接收的, 这样就多做了,你直接OutputStream out = s.getOutputStream(),就可以了, 而且然后我看了一下API,OutputStream好像是没有这个构造方法吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2