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

文件传输基础——Java IO流

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

已采纳回答 / 相遇即是缘分
字节数组不足以存放文件中的字节数据时,又想读完文件中的数据,这个时候,就要用到while循环了。如果字节数组足够大,可以放下整个文件的数据时,就不需要用到while循环了,只读一次就行了。但是,一般情况下,还是要用while循环,因为字节数组初始大小,无法保证适合所有的情况。

已采纳回答 / Java攀登者
我去试了一下,发现并不会buf数组并不会初始化,第二次读取的数据会直接覆盖数组原来的内容。假设第二次循环b=1002,那么buf[0]~buf[1001]的值会与第一次循环时的值不一致,而buf[1002]之后的数据与第一次循环一致。没覆盖的值不为0就证明了没有初始化,这就说明第二次读取时的内容直接覆盖原来的内容。

最新回答 / martinzh
FileReader/FileWriter 是 InputStreamReader/OutputStreamWriter的封装;可以让你更方便的操作文件的读写。前者就相当于你从家到公司有公交或者有地铁一样, 只要知道你自己家是什么站点,公司是什么站点就可以到达目的地。后者就相当与你自己从家到公司要走路或者自己开车,除了你要知道你家和公司的站点是什么, 你也必须知道你从家去公司要走什么路线才能到目的地。

最新回答 / 慕勒2491240
System.out.print(Integer.toHexString(buf[i] & 0xff)+" ");括号

最新回答 / 墓中幻相
反序列化出来的是一个对象,对象就好比new Student();创建出来的实例化对象它是在堆内存里的;而把实例化的对象赋值给变量也就是 Object p = new Student(); 这个变量p只是个变量,他在栈内存里,存储的是右边堆内存里对象的引用地址。而输出这个变量P的话实际上也是输出他存储的引用地址

最新回答 / hervie
是这样的,对象序列化之后,不管是什么文件后缀,打开都是乱码。反序列化后,取出来的数据用打印toString就是正常的。

已采纳回答 / 程序猿天璇
>>>(按位右移不足补0),表示无符号右移!右移表达式的位,不保留符号。result = expression1 >>> expression2参数解释:result:任何变量。expression1:任何表达式。expression2:任何表达式。说明:>>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。右移后左边空出的位用零来填充。移出右边的位被丢弃。例如: var temptemp = -14 >&...

最赞回答 / qq_prisoner_4
我自己回答一下吧。read方法返回值赋给b不能在while体外,否则将执行无限循环。相当于b是给定的不为-1的值,而在while循环中,b是一直在检验的,检验输入流是否读取到文件末端。

已采纳回答 / FarCryrr
1个字节是8位只有8种基本类型可以算.其他引用类型都是由java虚拟机决定的自己不能操作byte 1字节short 2字节int 4字节long 8字节float 4字节double 8字节char 2字节boolean 1字节

最新回答 / 慕圣3339112
好好复习基础,整形可以有二进制形式、8进制、16进制和10进制,那个tohexstring()就是16进制显示
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消