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

文件传输基础——Java IO流

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

已采纳回答 / 头发多
copyFileByBuffer这里是一个字节一个字节读的--->(c=bis.read())!=-1,并非批量,应将它与copyFileByByte的速度相比,是快的。如果copyFileByBuffer使用字节数组读取--->(b=in.read(buf, 0, buf.length))!=-1,那么会比同样使用字节数组批量读取的copyFile快。

最赞回答 / XJ_倾注你的泪
BufferedReader(Reader in)           创建一个使用默认大小输入缓冲区的缓冲字符输入流。    BufferedReader(Reader in, int sz)           创建一个使用指定大小输入缓冲区的缓冲字符输入流。    这是它的两种构造器

已采纳回答 / 邓孤思
byte b = -13;System.out.println(Integer.toHexString(b));// fffffff3 System.out.println(Integer.toHexString(b & 0xff));// f3

已采纳回答 / Manny2011
如果文件很小,你申请的容量8*1024个byte的数组就已经可以完全装下,很显然那么第一次读就一下把文件读完了;如果文件很大,你申请的容量一次读取装不完时,那就会有下一次读取,直到读到文件的末尾,此时返回-1,就跳出循环了;read(buf,0,buf.length)意思是一次最多读取的字节数不超过8*1024,即<=8*1024.看一下这个方法的官方文档解释,你就会更加明白了.     *Reads up to <code>len</code> bytes of data ...

已采纳回答 / 翱睿
while是保证输出的字节数组个数,for是用来具体输出的

已采纳回答 / 翱睿
这个实体指的是操作流的类的实体

已采纳回答 / Manny2011
还是数据编码及存储的原理还没有搞清楚.^_^ 首先,我们用键盘写文件时,是以输入码进行输入的,比如拼音类的输入法,或者是五笔字形输入法,输入之后,它会把你要输入进去的字符保存成机内码,也就是0 1所组成的机内码,因为计算机只认识这种01 编码的二进制码. 当然对西方字符的话,相对字符少,最常用的ASCII编码规则(8*16的矩阵),已经可以涵盖所有的西文字符. 而对于中文字符,就复杂些,因为光汉字就有成千上万个,所以又需要另外一套编码规则,将所有这些中文字符涵盖进去,说白了,就是给每一个汉字附一个唯一的二...

最赞回答 / 壮丹田
忽然搞懂了。listFile()返回的是一个对象,能接着做递归。list()返回的是String数组,不能接着做递归,查子目录的子目录。

已采纳回答 / Old_dai
直接子目录的抽象就是文件夹的路径,视频里说的子目录就是文件夹的意思。dir.list()返回的是文件和文件夹的名称,返回字符串数组;二dir.listFiles()返回的是文件和文件夹的路径,返回File对象

最赞回答 / 头发多
00  06 --->  这两字节表示的是字符串s占6个字节   (  String s = dis.readUTF();  )e4  b8  ad  e5  9b  bd  --->"中国"的utf-8编码4e  2d  56  fd  --->"中国"的utf-16be编码

已采纳回答 / pergod
bytes是读取到字节的长度,如果因为流位于文件末尾而没有 可用 的字节,则返回值 -1。(bytes = in.read(buf, 0, buf.length))> 20*1024,如果这样设置的话,后面已经没有可用的字节还是会继续读入,这样会异常吧。

最新回答 / 筱芴
你可以先判断文件是否存在file.exists(),要是不存在就进行创建file.createNewFile();这样操作就没问题了
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消