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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李凤鸣 中级黑马   /  2013-1-29 19:48  /  2995 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-2-2 12:31 编辑

这是视频中的一个小例子:

1    OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8");
2    BufferedWriter bufw=new BufferedWriter(osw);


BufferedWriter是字符写入缓冲区,里面应该是放入字符流

OutputStreamWriter 是转换流,将字符转换成字节流

那为什么将osw放入了BufferedWriter对象里呢???

有些疑惑

6 个回复

倒序浏览
应该是更加高效的输出吧,或者是BufferedWriter类中包装了更加好用的输出方法吧,BufferedWriter中不是有个newLine()方法吗,该方法提供了换行的功能,且不受平台的限制
回复 使用道具 举报
首先这个OutputStreamWriter是一个转换流,它的作用是把字节流转换成字符流,得到的实际上就是一个字符流呀.而BufferedWriter是一个字符流的包装类.用字符流的包装类包装字符流有什么不对吗?
回复 使用道具 举报
1    OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8");
2    BufferedWriter bufw=new BufferedWriter(osw);

BufferedWriter是字符写入缓冲区,里面应该是放入字符流   

OutputStreamWriter 是转换流,将字符转换成字节流    ×是将字节流转为字符流,后边是Reader和Writer的都是字符流

那为什么将osw放入了BufferedWriter对象里呢???  
将字符流放入字符流缓冲区中理所应当呀,还可以提高操作效率,使用更简单的操作方式


回复 使用道具 举报
BufferedWriter是OutputStreamWriter的包装类!看看jdk文档就知道了
回复 使用道具 举报
在io中,OutputStreamWriter属于Writer体系,这个没什么好说的。java设计者就设计成这样子

转换流.PNG (15.86 KB, 下载次数: 164)

转换流.PNG
回复 使用道具 举报
BufferedWriter是将你的流缓冲起来,提高大数据的写入效率
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马