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

文件传输基础——Java IO流

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

已采纳回答 / godspeed_26
所有的文件都可以理解为是byte[]。而1个byte占1个字节,一个Int是4个字节。所以说你写进去的东西将会出现乱码,除非你已readInt().或者已write()写read()读,总之你的输入和读取的类型要相同。

已采纳回答 / 化龙贝
<...code...>网上找的,不知道用木有用,你试下

已采纳回答 / leaf_xiao
如果需要创建的文件已存在,则抛出异常;如果没有文件目录的读写权限,则抛出异常。

已采纳回答 / SolaSJ
看来你没有理解toString()这个方法的含义 建议搜几篇文章看看按照你这里的思路 你注释掉读这个文件的操作 直接调用toString()这个方法也是输出"修改后"

已采纳回答 / 武庚_Rehan
因为你while循环里将字符数组转换为String类型时,会自动添上项目默认编码(你的是utf-8),只要文本文件的编码和你输入流的编码一样,控制台应该就会正确输出吧

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

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

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

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

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

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

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

已采纳回答 / joker1234
file.createNewFile();这里你要写file2.createNewFile()才对啊
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消