黑马程序员技术交流社区

标题: 谁能用很准确的专业语言,说一说这段代码的意思 [打印本页]

作者: 移动小坦克    时间: 2013-3-19 07:32
标题: 谁能用很准确的专业语言,说一说这段代码的意思
本帖最后由 韩松范 于 2013-3-22 17:47 编辑

BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
我知道这段代码是用来干什么的,但是想跟人说的时候发现
我只能这么说
获取scoket字节输入流对象,然后通过转换流,把字节流转换成,字符流,创建一个字符读取流缓冲区,把该字符流对象,传递给字符读取流缓冲区的构造函数。
我觉得这么说有点怪怪的,感觉有些地方说的不是很准确,比如把字节流转换成字符流,是不是应该说,把字节流对象转换成,字符流对象,还有BufferedReader是不是应该叫字符读取流缓冲区?
有没有人能把这行代码,用比较准确的专业术语,说出来
作者: 移动小坦克    时间: 2013-3-21 18:22
。。。。这个题目竟然没有一个人回答。。。。
作者: 黑马陈凯    时间: 2013-3-21 19:18
new InputStreamReader()new一个新的流对象
new BufferedReader()从字符输入流中读取文本
Socket.getInputStream() 获得网络连接输入,同时返回一个InputStream实例
然后我也不明白。{:soso_e113:}
作者: 张世钦    时间: 2013-3-21 23:54
用转换流的包装类高效的读取socket连接传输的流数据,
也不知道对不对
作者: VOIDMAIN    时间: 2013-3-22 00:05
我觉得你说的就挺专业的,
不过我还是给你回一个我的说法吧;

BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
获取一个socket连接的输入字节流,通过输入转换流做桥梁,将这个输入字节流封装成带缓冲区的字符流并创建该字符流缓冲区的对象引用;
作者: 谢达    时间: 2013-3-22 09:30
BufferedReader bufIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
首先获取socket输入流对象,Java io体系的设计采用了装饰模式,装饰模式的定义:动态的给一个对象添加一些额外的职责,此处socket.getInputStream获取的是字节输入流对象,而要其具备字符流的功能,所以就必须用到转换流为其添加字符流的职责,所以就把其传给InputStreamReader,为了提高效率需用到缓冲区,必须再次对字符流进行装饰,使其具备缓冲的功能, 所以把InputStreamReader再次传给BufferedReader..从而把一个本身只操作字节的对象装饰成了使其具有缓冲,可以操作字符对象,这是我对这句话的说法.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2