课程
/后端开发
/Java
/文件传输基础——Java IO流
前面说缓冲流是用桶装水,理应最快,但从结果上看不应该是copyFile花的时间最短吗?而copyFile用的是byte数组
2017-01-06
源自:文件传输基础——Java IO流 4-5
正在回答
copyFileByBuffer这里是一个字节一个字节读的--->(c=bis.read())!=-1,并非批量,应将它与copyFileByByte的速度相比,是快的。
如果copyFileByBuffer使用字节数组读取--->(b=in.read(buf, 0, buf.length))!=-1,
那么会比同样使用字节数组批量读取的copyFile快。
风铃飞弦 提问者
我个人认为复制文件最快的做法应该是批量读取到字节数组中然后使用缓冲输出流写入到文件。
并且在循环写入的过程中不要flush,要不然就失去了缓冲的意义,毕竟缓冲输出流在关闭的时候会将所有缓冲区中的数据全部写入文件。(注:flush()是防止在close之前有缓冲没有完全读完就被强行关闭了文件,在网络连接传输数据容易出问题。去掉缓冲循环的flush()速度会快很多)
举报
为您介绍IO流的使用,以及对象的序列化和反序列化的内容
1 回答用RandomAcessFile无论自己写的还是读取的中文文件都无乱码
1 回答符号问题不会
5 回答事实证明BufferedInputStream比FileInputStream快,而不是老师说的那个结论批量比缓冲块!!如果批量缓冲与批量相比呢?代码如下
3 回答显示找不到File符号??
2 回答bufferedReader和bufferedWriter为什么叫字符流过滤器呢?