黑马程序员技术交流社区

标题: 关于标准输出! [打印本页]

作者: lovecx24    时间: 2013-12-1 14:33
标题: 关于标准输出!
jdk文档中说PrintStream用来输出字节,PrintWriter用来输出字符,而且特别强调 The PrintWriter class should be used in situations that require writing characters rather than bytes. 但是为什么System.out却使用了PrintStream而不是PrintWriter?难道控制台输出就不是字符了吗

作者: 狼王    时间: 2013-12-1 14:51
最底层的是字节,字符是为了满足纯文本文件的需求而产生的。所以无论是字节,还是字符,最后都是字节,而System.out作为控制台输出,即要输出字节,又要输出字符,所以用的是PrintStream,而不是PrintWriter
作者: lichao    时间: 2013-12-1 15:20
在内存中,如'a''b''c''1'等都是以字节存储,如果以字符输出,就会出现乱码等问题(一个字包括2个字节)。
作者: cuilitang    时间: 2013-12-1 22:27
本帖最后由 cuilitang 于 2013-12-1 22:36 编辑

直接在本地控制台输出使用平台默认编码,不牵扯到编码问题。PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.方便,永不抛出异常。
但是如果是web程序就得用PrintWriter了,你的告诉目标主机你的编码是什么(utf-8、GBK、iso8859-1等等),以方便对方解码,不然就乱码啦




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