黑马程序员技术交流社区

标题: 键盘录入的源是纯文本,怎么又是字节流呢? [打印本页]

作者: 朝哥    时间: 2012-7-9 11:10
标题: 键盘录入的源是纯文本,怎么又是字节流呢?
本帖最后由 朝哥 于 2012-7-9 15:37 编辑

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

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

我再说的明白点:当我们键盘录入“中国”的时候,还没敲击回车键时,此时内存中是怎么存储“中国”的,“中国”二字此时在内存的2进制是怎么样的。肯定有个编码。
作者: 高原    时间: 2012-7-9 11:33
这是因为:InputStream和OutputStream是在JDK1.0的时候就出现了而Reader和Writer是在JDK1.1时才出现
在JDK1.0的时代,人们也得读键盘录入啊,所以键盘录入最早用的就是InputStream,,关于这点,你可以自己去看JDK文档
而后来出现了Reader之后,为了方便读取键盘录入,出现了将字节流转化为字符流的类:InputstreamReader
为了提高效率,又给套上了一层缓冲流,代码如下
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
作者: 赵倩倩    时间: 2012-7-9 11:47
将键盘录入的数据保存到一个文件中的思路  因为键盘录入的是二进制的码 所以要将其转换为字节流才能使用啊
源:读取流InputStream  Reader
          是不是纯文本:是 Reader
          设备 是键盘 对应的对象是System。in
           为了操作键盘的文本数据方便,转成字符流按照字符串操作是最方便的
            因为是Reader 所以将system.in转成Reader,用了Reader体系中的转换流InputStreamReader
           InputStreamReader isr=new
          需要提高效率?是,BufferedReader

作者: 朝哥    时间: 2012-7-9 12:09
这都可以加分?
作者: 朝哥    时间: 2012-7-9 15:37
{:soso_e179:}
作者: 朝哥    时间: 2012-7-9 19:58
{:soso_e179:}
作者: 黄丽慧    时间: 2012-7-9 20:00
本帖最后由 黄丽慧 于 2012-7-9 20:01 编辑

楼主问的这个问题,我也很好奇额,顶一下,有会的人来赶紧回答一下吧。。。。
作者: 朝哥    时间: 2012-7-10 13:40
{:soso_e179:}




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