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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 朝哥 于 2012-7-9 15:37 编辑

键盘录入的源是纯文本,怎么又是字节流呢?

我们通过键盘录入“中国”两个汉字的时候,他是怎么储存在内存当中的,是以4个字节存储内存的吗?但是为什么把该4字节存在到硬盘中去,又可以指定码表:如果是utf-8,那这8个字节是不是硬被拉成了可能是6个字节?
到底我们键盘录入汉字的时候在内存中时候是不是已经指定gbk码表了?(默认系统简体中文)

我再说的明白点:当我们键盘录入“中国”的时候,还没敲击回车键时,此时内存中是怎么存储“中国”的,“中国”二字此时在内存的2进制是怎么样的。肯定有个编码。

7 个回复

倒序浏览
这是因为:InputStream和OutputStream是在JDK1.0的时候就出现了而Reader和Writer是在JDK1.1时才出现
在JDK1.0的时代,人们也得读键盘录入啊,所以键盘录入最早用的就是InputStream,,关于这点,你可以自己去看JDK文档
而后来出现了Reader之后,为了方便读取键盘录入,出现了将字节流转化为字符流的类:InputstreamReader
为了提高效率,又给套上了一层缓冲流,代码如下
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 历史原因,赞一个!

查看全部评分

回复 使用道具 举报
将键盘录入的数据保存到一个文件中的思路  因为键盘录入的是二进制的码 所以要将其转换为字节流才能使用啊
源:读取流InputStream  Reader
          是不是纯文本:是 Reader
          设备 是键盘 对应的对象是System。in
           为了操作键盘的文本数据方便,转成字符流按照字符串操作是最方便的
            因为是Reader 所以将system.in转成Reader,用了Reader体系中的转换流InputStreamReader
           InputStreamReader isr=new
          需要提高效率?是,BufferedReader
回复 使用道具 举报
这都可以加分?
回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
本帖最后由 黄丽慧 于 2012-7-9 20:01 编辑

楼主问的这个问题,我也很好奇额,顶一下,有会的人来赶紧回答一下吧。。。。
回复 使用道具 举报
朝哥 中级黑马 2012-7-10 13:40:46
8#
{:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马