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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 韩松范 于 2013-3-22 17:47 编辑

BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
我知道这段代码是用来干什么的,但是想跟人说的时候发现
我只能这么说
获取scoket字节输入流对象,然后通过转换流,把字节流转换成,字符流,创建一个字符读取流缓冲区,把该字符流对象,传递给字符读取流缓冲区的构造函数。
我觉得这么说有点怪怪的,感觉有些地方说的不是很准确,比如把字节流转换成字符流,是不是应该说,把字节流对象转换成,字符流对象,还有BufferedReader是不是应该叫字符读取流缓冲区?
有没有人能把这行代码,用比较准确的专业术语,说出来

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
。。。。这个题目竟然没有一个人回答。。。。

点评

估计是你回答的已经比较好了。问题解决了,请尽快结贴,谢谢  发表于 2013-3-22 12:40
回复 使用道具 举报
new InputStreamReader()new一个新的流对象
new BufferedReader()从字符输入流中读取文本
Socket.getInputStream() 获得网络连接输入,同时返回一个InputStream实例
然后我也不明白。{:soso_e113:}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
用转换流的包装类高效的读取socket连接传输的流数据,
也不知道对不对
回复 使用道具 举报
我觉得你说的就挺专业的,
不过我还是给你回一个我的说法吧;

BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
获取一个socket连接的输入字节流,通过输入转换流做桥梁,将这个输入字节流封装成带缓冲区的字符流并创建该字符流缓冲区的对象引用;

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
首先获取socket输入流对象,Java io体系的设计采用了装饰模式,装饰模式的定义:动态的给一个对象添加一些额外的职责,此处socket.getInputStream获取的是字节输入流对象,而要其具备字符流的功能,所以就必须用到转换流为其添加字符流的职责,所以就把其传给InputStreamReader,为了提高效率需用到缓冲区,必须再次对字符流进行装饰,使其具备缓冲的功能, 所以把InputStreamReader再次传给BufferedReader..从而把一个本身只操作字节的对象装饰成了使其具有缓冲,可以操作字符对象,这是我对这句话的说法.

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马