java中OutputStreamWriter和Writer的区别还有InputStreamReader与Reader的区别..

OutputStream/InputStream是字节流,Writer/Reader是字符流,那为什么非要用OutputStreamWriter来包装字节流呢,如果觉得字节流的api不好用,为什么不直接用字符流呢

java中OutputStreamWriter和Writer的区别还有InputStreamReader与Reader的区别如下:
1.OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。 Reader、Writer是用来处理16位元的流。
Reader支持16位的Unicode字符输出,InputStream支持8位的字符输出。
Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,

InputStream、OutputStream是用来处理8位元的流,
2.java.io.Reader 和 java.io.InputStream 组成了 Java输入类。Reader 用于读入16位字符,也就是 Unicode编码的字符;而 InputStream 用于读入 ASCII字符和二进制数据。在 Java中,有不同类型的 Reader 输入流对应于不同的数据源:
FileReader 用于从文件输入;
CharArrayReader 用于从程序中的字符数组输入;
StringReader 用于从程序中的字符串输入;
PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。
相应的也有不同类型的 InputStream 输入流对应于不同的数据源:FileInputStream,ByteArrayInputStream,StringBufferInputStream,PipedInputStream。另外,还有两种没有对应 Reader 类型的 InputStream 输入流
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-20
为了速度。

Writer会一个字节一个字节的把内容写入文件,如果你有丰富编程经验的话,就会知道这种速度会多么慢。而outputstreamwriter是带有缓存的,用它包装了writer之后,writer就不会直接往文件中写,而是交给outputstreamwriter,然后就会往缓存中写,待Writer操作完成,OutputStreamWriter再一次性写入文件,效率大大提升。本回答被提问者和网友采纳
第2个回答  2010-09-26
一般二进制文件需要写字节流,文本文件需要写字符流。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网