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

java有效地获取文件大小

java有效地获取文件大小

元芳怎么了 2019-09-20 16:46:59
谷歌搜索时,我发现使用java.io.File#length()可能很慢。 FileChannel有一个size()方法也可用。在java中有一种有效的方法来获取文件大小吗?
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

本文中的所有测试用例都存在缺陷,因为它们为每个测试方法访问相同的文件。因此,磁盘缓存会在测试2和3中受益。为了证明我的观点,我采用GHAD提供的测试用例并更改了枚举的顺序,以下是结果。


看结果我认为File.length()真的是赢家。


测试顺序是输出的顺序。您甚至可以看到我的机器所执行的时间在执行之间有所不同,但File.Length()不是第一次,并且赢得了第一次磁盘访问。


---

LENGTH sum: 1163351, per Iteration: 4653.404

CHANNEL sum: 1094598, per Iteration: 4378.392

URL sum: 739691, per Iteration: 2958.764


---

CHANNEL sum: 845804, per Iteration: 3383.216

URL sum: 531334, per Iteration: 2125.336

LENGTH sum: 318413, per Iteration: 1273.652


--- 

URL sum: 137368, per Iteration: 549.472

LENGTH sum: 18677, per Iteration: 74.708

CHANNEL sum: 142125, per Iteration: 568.5


查看完整回答
反对 回复 2019-09-20
  • 3 回答
  • 0 关注
  • 340 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信