java有效地获取文件大小

谷歌搜索时,我发现使用java.io.File#length()可能很慢。 FileChannel有一个size()方法也可用。


在java中有一种有效的方法来获取文件大小吗?


元芳怎么了
浏览 341回答 3
3回答

一只甜甜圈

本文中的所有测试用例都存在缺陷,因为它们为每个测试方法访问相同的文件。因此,磁盘缓存会在测试2和3中受益。为了证明我的观点,我采用GHAD提供的测试用例并更改了枚举的顺序,以下是结果。看结果我认为File.length()真的是赢家。测试顺序是输出的顺序。您甚至可以看到我的机器所执行的时间在执行之间有所不同,但File.Length()不是第一次,并且赢得了第一次磁盘访问。---LENGTH sum: 1163351, per Iteration: 4653.404CHANNEL sum: 1094598, per Iteration: 4378.392URL sum: 739691, per Iteration: 2958.764---CHANNEL sum: 845804, per Iteration: 3383.216URL sum: 531334, per Iteration: 2125.336LENGTH sum: 318413, per Iteration: 1273.652--- URL sum: 137368, per Iteration: 549.472LENGTH sum: 18677, per Iteration: 74.708CHANNEL sum: 142125, per Iteration: 568.5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java