为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
我们知道一个字节占8位,可以表示两个16进制数,c4和bd的2进制表示分别为:1100 0100,1011 1101.可以看到他们的第一位都是1.而计算机是以补码形式存储数据。当计算机读取c4时,发现第一位是1,所以c4表示的整数是负数,要得到该负数需要进行取反+1操作得到它表示的正数,然后添加符号位。1100 0100取反+1后是0011 1100,即十进制的60,所以c4表示的是-60。而-60作为一个整形在内存中是以ffffffc4存储的。
我来解释下Integer.toHexString( b & 0xff )的作用。首先老师讲的有点小错误,不是去掉24个0,是去掉24个【0或1】.为什么呢? 我们以GBK编码的‘慕’为例,如果直接输出Integer.toHexString( b ),不进行&操作。结果是:ffffffc4 ffffffbd.可以看出&操作去掉的是6个f也就是24个1.不应该是24个0吗?
这位老师讲课太快了
老师讲的太好了,要是每学一节就布置点任务就更好了

已采纳回答 / 慕函数1702264
你好!你是在FileUtil类中创建了listDiretory()方法,但是你调用的时候,写成了FileUtileTest1.listDiretory()。应该写成FileUtile.listDiretory()。你调用了本类中的listDiretory()方法,但是本类中不存在该方法。该方法存在FileUtil类中。

已采纳回答 / xiaoc024
首先老师讲的有点小错误,不是去掉24个0,是去掉24个【0或1】.为什么呢? 我们以GBK编码的‘慕’为例,如果直接输出Integer.toHexString( b ),不进行&操作。结果是:ffffffc4  ffffffbd.可以看出&操作去掉的是6个f也就是24个1.不应该是24个0吗?我们知道一个字节占8位,可以表示两个16进制数,c4和bd的2进制表示分别为:1100 0100,1011 1101.可以看到他们的第一位都是1.而计算机是以补码形式存储数据。当计算机读取c4时,发现...
byte类型8位,int类型32位,为了避免数据转换错误,通过&0xff将高24位清零
没基础的听这个会晕的!但是有基础的听起来还是蛮好的。
以前只知道会乱码,完全不知道底层含义,现在有点清新了

最新回答 / 天子当歌
目测应该可以正确插入,只是编码方式不同,记事本不能正确显示而已。可以在后面用raf.seek(0);for(int i=0;i<10;i++){System.out.println(raf.readInt()); }验证下,应该可以正确显示在控制台
老师讲的真的非常好,非常好非常好。。。
讲的真好,大赞
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消