黑马程序员技术交流社区
标题:
为什么read()方法返回值改了之后
[打印本页]
作者:
黑马肖凯骏
时间:
2012-3-11 21:27
标题:
为什么read()方法返回值改了之后
为什么read()方法返回值改成int之后,用write写的文件不是原文件的四倍大小
毕老师说读一个字节没错
0000-0000 0000-0000 0000-0000 1111-1111
那为什么write写的不是从第一个byte 0000-0000 开始写的,而是从第四个1111-1111
一个int类型不是等于4个字节吗?
难道读取就是从低八位开始的?
作者:
赵孟恩
时间:
2012-3-11 21:45
输出流的write方法虽然接收是一个整数,四个字节,但是write只将最后一个字节写出。其他字节抛弃。
作者:
吴璞玉
时间:
2012-3-11 21:55
read()读取的是字节,8位,也就有可能出现1111-1111的情况,所以向上转型变成4字节的int型,
在之前补0,0000-0000 0000-0000 0000-0000 1111-1111,这样读出的数据就不可能与-1判断标志相同。
write()是将指定的字节写出,写出去的时候传进来的是个int数据,但是他也在做着操作,将int数据的前3个字节砍掉,只写最后一个字节,这是一个强制转换
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2