A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jialianghao 中级黑马   /  2016-4-14 10:19  /  387 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

客户端和服务端进行传输时。我看视频怎么都用PrintWriter out=(s.getOutputStream(),true);
不应该是OutputStream out=(new OutputStreamWriter(s.getOutputStream()));吗???两个语句有什么关系吗?

2 个回复

倒序浏览
打印流其实就是一个输出流,而且打印流构造方法里可以传入一个boolean类型,true就是自动刷新
回复 使用道具 举报
本帖最后由 「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好像是没有这个构造方法吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马