java中InputStreamReader和OutputStreamWriter都是转换流。InputStreamReader是将字节流转换为字符流,OutputStreamWriter是字符转字节流。那么BufferedWriter out =new BufferedWriter(new OutputStreamWriter(System.out))这句代码该怎么解释呢?按照java JDK所言,
也就是说BufferedWriter构造方法中只能传一个Writer类型的字符流,可OutputStreamWriter却是将字符流转换为字节流的一个转换类型,怎么new OutputStreamWriter(System.out)就成了字符流了???还有就是System.out是PrintStream类型,而PrintStream有是OutputStream的子类,也就是说System.out本身就是字节流了,为甚么还要用new OutputStreamWriter将原本已是字节流的System.out转换为字节流呢???
OutputStreamWriter 将字节流转换为字符流。这就是一个Writer类型的字符流。new OutputStreamWriter(System.out)这是把字节流转换成字符流。
所以你的问题就在把OutputStreamWriter转换搞反了。
所以你的问题就在把OutputStreamWriter转换搞反了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-05-19
能不能不要这么想当然的?
知道看api不知道去看一下OutputStreamWriter到底是个什么东西嘛
public class OutputStreamWriter extends Writer{...}
继承自Writer,本身就是一个Writer,
知道看api不知道去看一下OutputStreamWriter到底是个什么东西嘛
public class OutputStreamWriter extends Writer{...}
继承自Writer,本身就是一个Writer,
第2个回答 2018-05-19
blog.csdn.net/pasken/article/details/48826657
看这个,你就能想通了
看这个,你就能想通了
第3个回答 2014-05-19
这里使用了java的一些设计模式.你可以参看以下链接
主要使用的是-装饰模式
有空可以研究研究
主要使用的是-装饰模式
有空可以研究研究
第4个回答 2016-08-18
OutputStreamWriter是转字节为字符吧