我不太理解的是这句话: PrintWriter out = new PrintWriter(s.getOutputStream(),true); PrintWriter是字符流,而s.getOutputStream()是字节流,两者怎么联系在一起的?也就是PrintWriter是属于字符流的,为什么能操作字节流?
如果你不理解,可以去看源代码
我来给你读读源代码、、
public PrintWriter(OutputStream paramOutputStream, boolean paramBoolean)
/* */ {
/* 110 */ this(new BufferedWriter(new OutputStreamWriter(paramOutputStream)), paramBoolean);
/* */
/* 113 */ if (paramOutputStream instanceof PrintStream)
/* 114 */ this.psOut = ((PrintStream)paramOutputStream);
/* */ }
这个是java源码中的对PrintWriter的定义。。。
this(new BufferedWriter(new OutputStreamWriter(paramOutputStream))看到么???
这不是转换流吗内部
也就是将你的OutputStreamWriter转换
这跟我上边写的有区别?
1,转换流。
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
‘
|