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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© itheima01 中级黑马   /  2013-4-30 20:05  /  1719 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 itheima01 于 2013-5-3 21:59 编辑

字节读进来自动升为int类型, int b=fis.read() 如果想显示,就必须强转为char。我想如果读进来的就是一个整数,i那怎么显示。为什么写出去一个字节,就是那个,而不是 写出去65 而显示A  fos.write()
程序--->内存---->目的地。。写一个数,然后查码表,然后把对应的数写进内存,然后从内存中输出再通过查码表显示出来。  
目的地--->内存--->程序。读一个数,通过查码表把对应的数写进内存,然后从内存中输出再通过查码表显示在程序中,在程序中把‘a’提升为码表中对应的整数。小弟的理解对不对?请给点详细的讲解。。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

3 个回复

倒序浏览
也可以这么认为,我的理解是,强转只是为了防止读取的字节不是-1设置的,字节如果不转换,第八位上是1,那结果就是-1了,判断条件就不满足了,
然后,就没有然后了。  所以类型的转换,就是为了保证,字节的原样性(这是毕老师说的)   这样你的问题应该就能够明白了吧

其实东西还是那个东西,任何数据都是以二进制的形式存储的,只是获取时读取二进制的方式不同,结构就不同了

就比如说你输入的是65, 那存储的时候就是以整数类型的二进制存储的,而不是以字符串类型的二进制存储的,(当然这两者是不是同一个东西,我不确定,我只是这样理解的希望对你有帮助,或许我这样理解有点走偏了)

强制转换就是为了保证数据的原样性,这也是字节流所特有的,字符流由于各种原因,不容易保证原样性。



评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
使用DataOutputStream,这个流有一系列读基本数据类型的方法
回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马