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

文件传输基础——Java IO流

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

已采纳回答 / demmo
for循环输出buf数组中的内容, while循环控制文件是否读完; read()返回的读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。我的理解是一个水池,大小是buf.length  放满水后(存满了数据)从另个通道排出, 然后进水口在继续进水(继续读取数据,从0到buf.length)当最后一次排水结束 进水口没有进水了  返回了-1  触发了whlie的条件 ...

已采纳回答 / Mrwanglei
类型强制转换时,就会调用构造函数

最新回答 / 福尔摩斯易
首先你要知道将要写入的内容写入文件的时候,其实其底层是按一个字节一个字节写的(好像是按unicode码写的),所以中文汉字,和英文字母是不会出问题的(显示到文件上的unicode码还是原来的内容),但你写入基本数据类型时;比如0x7fffffff时,如果你用writeInt的话写入的是 127 -1 -1 -1,你把这4个码在转换过来还是0x7fffffff吗?上面仅代表个人理解

已采纳回答 / sixGod
就是方法调用而以啊,你这段代码是不是写在ListDirectory()中啊,接收参数是个文件,整个方法逻辑就是1、传一个文件路径dir进来,如果传进来的是文件夹,取出文件夹中的所有文件进行遍历2、遍历时将每个文件进行判断,如果发现是文件夹,执行递归,又回到第一步。如果不是文件夹,就输出

已采纳回答 / 武庚_Rehan
它应该只是写入了低八位,并没有把整个汉字写进去,你可以调用read方法,看能不能读到完整的汉字

已采纳回答 / 忘性最大的人
每次读取buf数组长度的数据,当读到文件末尾时,因为二进制流读取是读0或1,当读到-1时说明文件已经读到末尾,此时文件读取完毕。上面的循环就是在反复读取文件,直到读到文件末尾的-1,文件读完。

已采纳回答 / 吴登广
指针会往后面走,每一次i=in.read();的结果都是不一样的。先赋值再判断

已采纳回答 / _神人A
因为老师没有对空目录做出来,加一段判断的就好。<...code...>

已采纳回答 / joker1234
file.createNewFile();这里你要写file2.createNewFile()才对啊

已采纳回答 / needself
没报错,我按着你的代码是可以编译的,标点符号()输入法格式更换在尝试一次,没问题。
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消