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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰

最赞回答 / 牙膏牙膏牙膏
in.read(buf,0,buf.length),这个方法返回的是它读取到的字节个数!正如你假设的,文件100字节,buf容量80字节:第一次读取的时候是返回80;第二次进入while的时候,文件读取的字节是从第81个字节开始(读取的时候文件有个指针一边读一边移动的,前面老师讲过),就是说文件还剩下20个字节可读,所以这时候返回的字节是20;第三次进入while的时候,文件已经没有内容可读了,所以返回的是-1;这时候就跳出了while!纯手打!望采纳!
你们这节课学了多少小时呀。。

已采纳回答 / qq_星河k_0
问题和代码无关,你只要输出System.out.println(0xffffffff)就会得到-1;原因是int 是有符号位,占4个字节,而0xffffffff是以int类型存储的,int是有符号的。即1111 1111 1111.......第一位被用来记录符号,所以这里就被解释为负号了,而Java在编码时,存储的是负数的补码,所以你的1111.....就成了1000......+1就是10000.....1就是-1啦。所以16进制最大的数是0x7fffffff.

已采纳回答 / 斓若林
没关系的,转不转换没什么意义,这只是讲师的个人习惯

已采纳回答 / 神乐Triste
您说的是in是什么类型的呢,FileInputStream?在FileInputStream的read()方法中有返回值为int类型的重载函数.
主播 是 宁波人吗?
全是代码,看的晕头转向,看了三四遍还是没理清楚

最新回答 / pardon110
需要一点大小端,高低位,位运算, 字节,字符,编码相关的基础知识

最新回答 / 斓若林
<...图片...>不要用文本文档写东西

已采纳回答 / 一把年纪小二郎
因为你的只导入了BufferReader的包,没有导入其余流对应的包 你可以改为1.导入你目前代码中使用的流包2.直接导入java.io.*所有的IO包
我能说4:56和6:00的代码不一样吗,难道代码注释后,里面的内容就不一样了吗
各位喜欢一直戴耳机的盆友,可以去百度一下,耳机不能久戴,否则伤害听力。无论买多贵的耳机都是这样。还是用音箱比较好。

已采纳回答 / HungerCheung
问题原因:<...code...>解决方法:
//注释掉或者直接删除下面这行代码可以得到和老师同样的结果
//Bar2 bar2 = new Bar2();
//该程序是为了测试反序列化得到对象是否调用其构造方法
//因此重新新建一个Bar2的实体对象是完全没有必要的,反而会混淆测试结果

最赞回答 / HungerCheung
以题主的代码为例:我所理解题主的困惑在于,for循环中限制条件为什么是n而bytes.length。首先我简要解释一下这个n与bytes.length的区别:length是一个in类型的整数,用于记录bytes这个字节数组的长度。length表示这bytes的最大容量,是一个大小始终不变的固定值。n是也一个int类型的整数,用于接受file的read方法的返回值。因为这个返回值表示一次读取从bytes数组中到的字节数,所以n就随着每次从bytes中读取的字节数的变化而变化。看来这里题主可能会想,file的...

最新回答 / yyz要学java
那你正常写就好了啊  char c='A';raf.write(c);System.out.println(c);类似于这样
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消