黑马程序员技术交流社区

标题: 关于Io流的问题。 [打印本页]

作者: itheima01    时间: 2013-4-30 20:05
标题: 关于Io流的问题。
本帖最后由 itheima01 于 2013-5-3 21:59 编辑

字节读进来自动升为int类型, int b=fis.read() 如果想显示,就必须强转为char。我想如果读进来的就是一个整数,i那怎么显示。为什么写出去一个字节,就是那个,而不是 写出去65 而显示A  fos.write()
程序--->内存---->目的地。。写一个数,然后查码表,然后把对应的数写进内存,然后从内存中输出再通过查码表显示出来。  
目的地--->内存--->程序。读一个数,通过查码表把对应的数写进内存,然后从内存中输出再通过查码表显示在程序中,在程序中把‘a’提升为码表中对应的整数。小弟的理解对不对?请给点详细的讲解。。
作者: 、__WSD吴少东    时间: 2013-5-1 04:44
也可以这么认为,我的理解是,强转只是为了防止读取的字节不是-1设置的,字节如果不转换,第八位上是1,那结果就是-1了,判断条件就不满足了,
然后,就没有然后了。  所以类型的转换,就是为了保证,字节的原样性(这是毕老师说的)   这样你的问题应该就能够明白了吧

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

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

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




作者: 孙胜    时间: 2013-5-1 08:45
使用DataOutputStream,这个流有一系列读基本数据类型的方法
作者: 黄玉昆    时间: 2013-5-2 20:23
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




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