日期:2014-05-20  浏览次数:20587 次

请问下字符流和字节流的问题。
PrintWriter pw = new PrintWriter(s.getOutputStream());

这段代码,s 是socket对象。
接着我可以通过pw往里面写数据。
pw.println("中国");

这个是字符流,如果我把字符写入字节流中,那么系统会自动转换为字节数据?
还有这里为什么能够写中文,字符流能够处理中文么 ?

socket中的流始终都是进行字节传输么?

------解决方案--------------------
public PrintWriter(OutputStream out)根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者使用默认字符编码将字符转换为字节。
这里说的很清楚
其实是用了OutputStreamWriter来实现的
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。