章节
问答
课签
笔记
评论
占位
占位
今日不再显示

下一节课程: 字节字符转换流 (18:09) 下一节 重新观看

3 秒后播放下一节

为你推荐

12年以上的大型项目研发及项目管理经验,曾经策划多个大型项目与网站的架构,主持过访问量达亿级的大型网站。近期先后为多家知名公司授课,有多年的培训经验。对知识点的讲解细腻、逻辑性强。

提问题

写笔记

代码语言
公开笔记
提交
加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最赞回答 / qq_小浪蛙_03210325
fos2 这个变量没有进行初始化,所以在使用的时候报了空指针异常,fos2 初始化一下就好,就像你的fos变量一样:fos = new FileOutputStream("fix.txt");

已采纳回答 / PeacefulWinter
c 的意义在于临时存放当前 while 循环读到的字节内容,以便在循环体内多次引用。如果直接换成 bis.read(),则每调用一次,读到的内容都是下一个字节,逻辑就全乱了。

最新回答 / SpaceWalker
要么重命名当前类名。要么在类前面加上完整的路径。

已采纳回答 / xiongmaojames
1、byteBybyte 模式,是程序从硬盘上读取一个字节字后,再写入一个字节,然后再读取再写入,因为磁盘io的速度是非常慢的,所以耗时较长2、缓冲实在byteBybyte基础上,方法内部根据一定的算法(也可以能是固定长度,没有看具体实现)在内存中开辟一个空间-缓冲区,读取一个(或者若干个)字节之后,先放入内存缓冲区,然后写入的时候,从缓冲区中写入硬盘。3、因为内存的io速度非常快,因此可以更为高效的利用硬盘,所以整体上就快了。

最新回答 / 止于至善5
你找错目录了,不是bin下的,而是src下的

最赞回答 / 何时才能成大佬
FileOutputStream的write(int)是直接把字节写到磁盘文件上,相当于直接从这个山头的缸中取了一滴水,然后爬到另一个山头放入那个缸中。FileOutputStream的write(byte[])是直接把字节先写到字节数组中,然后统一写到磁盘文件上,相当于直接从这个山头的缸中舀一瓢水,然后爬到另一个山头倒入那个缸中。DataOutputStream的writeXxx()理解跟FileOutputStream的write(byte[])差不多BufferedOutputStream的writ...

已采纳回答 / qq_沉醉_1
格式化代码,方便查看和编写

已采纳回答 / 一把年纪小二郎
因为你的只导入了BufferReader的包,没有导入其余流对应的包 你可以改为1.导入你目前代码中使用的流包2.直接导入java.io.*所有的IO包

最赞回答 / qq_慕虎6536986
理论上是不通的。按道理应该是批量比缓冲更快。可以看一下源码,知道缓冲底层调的是批量。如果数据不对,试一下多试几次。有可能是JVM垃圾收集影响了。还有要拷贝不同的文件。读过的文件操作系统有缓存了。拷一个1-2GB的文件试试。<...code...>

最新回答 / 攻城湿123
因为他在内存中创建了byte数组,读写是在内存中进行的,所以快多了

最赞回答 / 慕仙7425987
可以不使用静态方法,不使用静态方法,在Test类中就需要先创建一个IOUtil  iu = new IOUtil()对象,通过iu.copyFileByBuffer();方法调用,使用静态方法就可以直接IOUtil.copyFileByBuffer();就可以使用了

最赞回答 / qq_安居旧巷猫患者_0
1.read这个函数就是读取字节的2.缓冲区的默认大小好像是8192,以为我在源码中看到private static int defaultBufferSize = 8192;这句话3.要是超过缓冲区大小会怎样不知道

最赞回答 / YI_F
引用woider所讲的:使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到...

最赞回答 / Pikaqiu_01
因为你的源文件和目标文件名称一样,所以在找目标文件时发现了和目标文件名称一样的源文件,就把源文件删除了重新创建了一个文件,所以你的源文件就没有了,老师视频里面有讲到,当你给出一个路径时,如果没有这个文件他会创建这个文件,如果存在这个文件他会把这个文件删除再创建,如果你不想这个已经存在的文件被删除,只是想要续写他,需要再加一个true,如果我没记错应该是:new File("文件路径",true),具体的你可以再听一遍
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言