SoyaDokio 2016-06-28 08:57 采纳率: 100%
浏览 3403
已采纳

OutputStreamWriter和PrintWriter之间是什么关系,有什么区别,如何使用?

我想请教大家一个问题。
我看到大家写输入输出流时常常是这写的:

 new BufferedReader(new InputStreamReader(new InputStream()));
new BufferedWriter(new PrintWriter(new OutputStream()));

可我觉得像下面这样搭配似乎看起来更符合习惯、直观:

 new BufferedReader(new InputStreamReader(new InputStream()));
new BufferedWriter(new OutputStreamWriter(new OutputStream()));

但为什么大家用的都是上面一种方式呢?OutputStreamWriter和PrintWriter之间是什么关系,有什么区别,为何后者会替代前者使用?

p.s.参考外国网友的回答,我的理解是前者是输出字节码,而后者是输出字符?丈二摸不着头脑。

  • 写回答

5条回答 默认 最新

  • 暮云收尽溢清寒 2016-06-29 01:32
    关注

    整个流的设计时装饰者模式,所以每种不同实现都是含有不同的实现。字节流和字符流是不同的,
    用字节流读字符数据或用字符流读字节数据都会出现丢失,这个区别为什么还不够呢?

    用哪个要看你读的是什么类型的数据,复制个文件肯定是字节流,读取文件内容肯定是字符流。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?