A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛亚昆 中级黑马   /  2012-3-28 08:38  /  2502 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

PrintWriter out=new PrintWriter(s.getOutPutStream(),true);这句话,怎么看不懂啊,高手指点,字符流怎么接受字节流了啊

5 个回复

倒序浏览
这应该是socket通信程序中的一个语句。其中的s应该是一个socket对象。s.getOutputStream()就是返回一个服务器与客户端的输出流,true是对PrintWriter pw 而言,就是强行把缓冲区的数据输出。s.getOutputStream()返回的是一个节点流,在它上面又套上了一个处理流PrintWriter ,便于输出数据。
回复 使用道具 举报
public PrintWriter(OutputStream out,
                   boolean autoFlush)通过现有的 OutputStream 创建新的 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者使用默认字符编码将字符转换为字节。

参数:
out - 输出流
autoFlush - boolean 变量;如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区
另请参见:
OutputStreamWriter.OutputStreamWriter(java.io.OutputStream)
回复 使用道具 举报
PrintWriter 也是writer的子类,此类有其特殊之处,它是向文本输出流打印对象的格式化表示形式,实现了 PrintStream 中的所有 print 方法。
它的构造函数有很多,参数可以是字节输出流也可以是字符输出流,甚至是文件或者字符串。
回复 使用道具 举报
public class PrintWriterextends Writer向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

与 PrintStream 类不同,如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作,而不是每当正好输出换行符时才完成。这些方法使用平台自有的行分隔符概念,而不是换行符。

回复 使用道具 举报
谢谢指点
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马