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

文件传输基础——Java IO流

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

最新回答 / 慕运维824941
in.read()是从流中读取的数据的长度,b=in.read是将in.read的长度赋给b

最新回答 / im李先森la
可以,本来老师的意思是 从0位开始写入到 b位,如果你写了buf.length,就相当于每次都读全部byte[]的位数,这个时候b就没意义了,可以在while后面直接写while(in.read() != -1)

已采纳回答 / 阿莫林西
反斜杠/是可以运行的。但是你怎么把冒号写成分号了!

最新回答 / Angle_Zhang
这是相应的编码表中的字符的对应值,比如ASCII中A字符就对应65,这些并不重要,并不要去记~

已采纳回答 / SHsama
两个汉字,四个字节。按你所说,你觉得应该使用四次写操作,但是那是相对于直接写入字符来说的,此处使用了字节数组,数组相当于一个有序的容器,在数组中”中国“被分成四个字节依次写入其中,out.write(bytes);就将这个数组写入其中,数组其中的写字节操作在内部进行,不是靠四个write操作写入的。你可以将鼠标放到你写的write上可看到该方法提示Writes b.length bytes from the specified byte array to this file output stream....

已采纳回答 / 宝慕林0707671
这个A是char类型的,一个char等于两个字节。write一次写出一个字节。所以会将这个字母的低八位写出

最新回答 / 武HH
数组开拓了内存空间,但是实际存放数据的可能只有部分,所以只需要序列化存放数据的那一部分

已采纳回答 / 向上看
因为你每run一次,指针都是从0开始的,每run一次都改写了上一次内容,你可以尝试运行一下老师的程序,然后再在程序前添加 raf.seek(12),使下一次从12byte处开始写,运行后你会发现输出长度为24

已采纳回答 / 汉江怪人
不是的,默认的是将有效的和无效的全部都序列化了。

已采纳回答 / 张土土
只有read是读一个字节就输出一个,遇到-1结束,用上数组,就是读取一定个数(数组长度)字节后(遇到-1结束)才输出。

已采纳回答 / wakinzc
因为Student中的字段都会被默认的进行序列化,如果有的字段被transient关键字修饰 则不会被序列化,需要手动序列化。

最赞回答 / qq_青羽天穹_0
API的英文全称(Application Programming Interface),应用程序接口是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过调用 API 函数对应用程序进行开发,可以减轻编程任务。 API 同时也是一种中间件,为各种不同平台提供数据共享。内容很多,你去百度下吧。

最新回答 / 历飞雨
静态方法的使用。调用静态方法,直接类名.方法名就可以了基础不牢哦
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消