读出来的数据是什么类型的
为什么读出来的数据需要强制转换????
(char)fis.read()
还有既然输入是50a,是三个元素 ,读取的时候为什么不会判断成为5是一个字节,0a是一个字节?
0
收起
正在回答 回答被采纳积分+1
2回答
慕布斯645313
2018-11-15 17:42:52
1、每次是写入的是一个字节,50和a是以两个字节的形式存进去的。
2、可以write进汉字去,一个汉字占用两个字节,而一个char类型的内存正好有两个字节的空间,所以可以存汉字。独处的时候会变成乱码。
3、因为字节输入流可以操作任意类型的文件,比如图片音频等,这些文件底层都是以二进制形式的存储的,如果每次读取都返回byte,有可能在读到中间的时候遇到111111111,那么这11111111是byte类型的-1,我们的程序是遇到-1就会停止不读了,后面的数据就读不到了,所以在读取的时候用int类型接收,如果11111111会在其前面补上24个0凑足4个字节,那么byte类型的-1就变成int类型的255了这样可以保证整个数据读完,而结束标记的-1就是int类型
4、这个n代表是读出来的数字数,这是方法就是这么设计的。
chrismorgen
2018-11-15 14:58:07
你好同学,如下图所示,read方法返回的数据类型是int类型,所以要转为char类型,否则就不会输出插入的字符a了。
这个read方法是把数据读到数组b中,返回值表示实际读取的字节数,如果是没有参数读的是整数,祝学习愉快~
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星