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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭亚飞 黑马帝   /  2011-9-5 02:55  /  1722 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

out 是printstream 的一个对象,printstream 是一个字节流,那么调用的print等方法最终在文件上写入的是二进制文件,而字符采用的是Unicode编码,那么为什么调用其println 或者printer方法可以显示字符?请高手指教,我睡觉先,扛不住了:lol

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 睡吧,看看童鞋的答案!

查看全部评分

7 个回复

倒序浏览
黑马网友  发表于 2011-9-5 06:49:25
沙发
建议楼主看一下源码
回复 使用道具 举报
黑马网友  发表于 2011-9-5 08:46:13
藤椅
你的疑问有点没看明白,:P  我昨天也看到IO流这一章了,希望对你有帮助哈。。。

    1)流是字节序列的抽象概念,文件是数据的静态存储形式,而流是指数据传输时的形态。流类分为两个大类:节点流类和过滤流类(也叫处理流类)。

    2)InputStream 与 OutputStream 类

       InputStream 类:
            程序可以从中连续读取字节的对象叫输入流,在Java 中,用InputStream 类来描述所有输入流的抽象概念。
      OutputStream 类:
           程序可以向其中连续写入字节的对象叫输出流,在Java 中,用OutputStream 类来描述所有输出流的抽象类。

    3)InputStream 类中的 int read()方法是 从输入流中读取一个字节的内容,并把字节的内容以整数的形式返回,如果碰到流的结束就返回-1,如果没有碰到流的结束并且没有内容可读,就会发生堵塞。一个整数是4个字节,read()方法将读入的一个字节内容复制到返回的整数的最低的一个字节。

    4)二进制文件和文本文件的区别

      在不考虑正负数的情况下,每个字节中的数据可以是0~255之间的任意值,他们在内存中都是以二进制的形式存储,通常所说的文件,就是内存中的一片数据复制到硬盘上的存储形式,文件中的每个字节数据 也都是二进制形式的,文件系统中的每个文件都是二进制文件.

     各种文本字符是由一个或多个字节组成的, 其中每个字节的数据不能是任意的,它不能像二进制一样,从0~255之间都可以,而这些要表示字符的字节只能是0~255之间的一些特殊的数字,其它数字是都不可能出现的。

      如果一个文件中每个字节,或几个相邻的字节表示成某种字符,就可以称为文本文件,可见文本文件是二进制文件的一种特殊形式,为了与文本文件相区别,把文本文件外的其它文件称为二进制文件。

      简单认为, 如果一个文件专用于存储文本字符, 而没有包含字符之外的其它字符,称之为
文本文件,除此之外的文件成为二进制文件。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-5 13:17:11
板凳
二进制文件是什么??就是一连串0101010100101,那Unicode编码难道不是101010100组成的??一样的。。。只不过你字节流要读两次才相当于一个字符,Unicode的单位就是字符

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-5 13:18:11
报纸
楼主保重身体啊。
回复 使用道具 举报
黑马网友  发表于 2011-9-5 14:08:44
地板
哦,原来是这样,谢谢童鞋们的答案~
怎么感觉越往后学,越容易犯糊涂呢,脑子反应越来越迟钝了...
回复 使用道具 举报
黑马网友  发表于 2011-9-5 23:15:50
7#
慢慢适应就好了   适应后会觉得很轻松的

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-10 09:15:24
8#

回复 板凳 的帖子

Unicode虽然是字符流,但是并不是 2个低8位一起读得,请参阅【传智播客毕向东Java基础视频教程-day21-08-字符编码-联通.avi】

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

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