黑马程序员技术交流社区

标题: 关于打印流的疑惑 [打印本页]

作者: wahaha    时间: 2013-3-13 09:45
标题: 关于打印流的疑惑
亲爱的筒子们:
我看IO流中的打印流,还是有点不理解,打印流其实也是写入嘛,既然这样,为什么不用字节流FileInputStream来实现呢?
字符流就为什么没有打印流呢?
作者: 曾钦    时间: 2013-3-13 10:14
看下API吧。。
PrintStream:

PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 ('\n')。

PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类


PrintWriter:
向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

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

此类中的方法不会抛出 I/O 异常,尽管其某些构造方法可能抛出异常。客户端可能会查询调用 checkError() 是否出现错误。





作者: 樊其杰    时间: 2013-3-13 10:17
打印流是向文本输出流打印对象的格式化表现形式,是输出流,即写入流,要搞清楚读取流和写入流的区别,可以用FileOutputStream来实现 ,打印流本身就是字符流,建议楼主多看API文档:下面是字符流与字节流的总结:

2012031413373126.jpg (54.23 KB, 下载次数: 12)

2012031413373126.jpg





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2