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

文件传输基础——Java IO流

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

已采纳回答 / fevone
是BufferedReader 和 BufferInputStream , 所有stream的都是字节流,reader的都是字符流。

已采纳回答 / 好帮手慕珊
read()方法返回实际读取的字节数,如果读到文件的末尾返回-1。方法阻塞,我理解是当没有输入可用时,方法会抛出IOException异常

已采纳回答 / 好帮手慕珊
放前面的话只read了一次,如果文件有内容,b的值永远都是第一次读的值,不可能是-1,要想循环必须将in.read()写到while循环后的括号中。

已采纳回答 / 虛無縹緲丶
eclipse和myeclipse有自动提示功能,只需要输入sysout+快捷键(默认为Alt+/)便可打印出System.out.println()

最赞回答 / oper
if (file.isDirectory() && file.listFiles().length > 0) {                    // 递归                    listDirectory(file);                } 按楼主增加的判断条件,才会打印空目录

已采纳回答 / 好帮手慕珊
在byte[] bb=new byte[(int) raf.length()]; 下面加一句话raf.seek(0);将raf的指针重新定位到0,否则是从"中"的位置后开始读,我这边读到的是空字符串,什么都没有输出。

已采纳回答 / sixGod
你这不是没报错吗?

最赞回答 / callme激流
这个是要以程序为基准的,outputStream输出流(从程序输出到硬盘),从程序往硬盘写                        inputStream 输入流(从硬盘输入到程序),从硬盘往程序读             

已采纳回答 / 仗剑闯江湖
'0x'开头表示这个数是十六进制的,八进制数以'0'开头,十进制没有这个标志,二进制也要有一个标志,记不清了。既然是以字节为单位,肯定十六进制最方便了,表示起来也清晰,你写八进制和二进制,还要数一数几个一,多费劲啊。

已采纳回答 / 好帮手慕珊
我看到了你的课程完成度已经100%啦

最赞回答 / 好学的小橙子
read()返回的是读取的字节数,write()是写入文件的字节数,需要的就是c是int型,你想怎么变

已采纳回答 / 发呆的阿呆
这里的数组应该相当于缓存   

已采纳回答 / 好帮手慕珊
不是一次性都读取到buf数组中,看下面的代码第5行,通过read方法读到buf数组中,buf数组满了就进行处理(转换成16进制显示),然后再接着读,直到读到文件末尾为止。FileInputStream in = new FileInputStream("e:\javaio\1.mp3"); byte[] buf = new byte[8 * 1024];  int bytes = 0;  int j = 1;  while((bytes = in.read(buf,0,buf.length))!=-1)...
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消