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

文件传输基础——Java IO流

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

已采纳回答 / botao555
file的length方法的作用:如果File表示一个具体文件,则length方法返回这个文件的字节大小;如果File表示一个目录,则length方法的返回值不确定;如果File表示的目录或文件不存在,则length方法的返回值为0L。你要是想获取某个目录下的子文件,是不能用length方法的,要用listFiles方法,用法如下:File[] files = file.listFiles();listFiles方法返回一个File数组,就是拿到的所有子文件(或目录)。望采纳。

已采纳回答 / 慕粉2840722
我的理解是的;IO流只是通道; 后面主要需要学习对各种类型文件的读写;特定函数的读写;

最赞回答 / 鲁国人
看一下你的这个java文件是什么编码。如果是utf-8的话。汉子占3个字节就是32位

已采纳回答 / 念旧的拾荒者3981222
printHex()是IOUtil类里写的静态函数,所以能够直接通过IOUtil类来调用该函数,他不是FileInputStream的方法,而是IOUtil里的方法

已采纳回答 / qHK丨DC
比如从一个缸往另一个缸中倒水,前者直接到,后者是有缓冲区的,相当于一个桶,然后往桶里加水,然后再往另一个缸中到。  字节数组最快(批量),有缓冲区的次之(一杯一杯加到桶里再将桶中的倒入缸中),一个字节一个字节最慢(相当于一杯一杯)。  太详细的有点啰嗦,将就看吧。

已采纳回答 / yeehom
这样写是出于兼容性考虑。旧版本的JDK中,ArrayList的实现有所不同,会对length字段进行序列化。而新版的JDK中,对优化了ArrayList的实现,不再序列化length字段。这个时候,如果去掉s.writeInt(size),那么新版本JDK序列化的对象,在旧版本中就无法正确读取,因为缺少了length字段。因此这种写法看起来多此一举,实际上却保证了兼容性。附上官方解释:defaultReadObject() and defaultWriteObject() should be the fi...

已采纳回答 / 流失时光90
从输入流读取下一个字节,可以查看API

已采纳回答 / 0110号建筑师
raf.read(buf)是将前面raf写过的文件内容读取并存储到buf数组中

已采纳回答 / IMOOC_LULUO
throws将异常抛出到java虚拟机,不作处理;try/catch捕获异常并处理,

已采纳回答 / IMOOC_LULUO
println()写成print(),多了ln表示打印换行,没有ln就不换行了

已采纳回答 / guolaikankan
偏移量可以理解为从第几个位置开始,其实可以理解为数组下标,用一个int表示偏移量,写0就表示从第一个开始,因为数组的下标从0开始

已采纳回答 / winxblast
文件比buf大的情况下,那么一次就不能全读进来,就需要循环
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消