Java:如何:有效地获取2GB大小的文件大小?

问题描述:

可能重复:
Getting the size of a file in JavaJava:如何:有效地获取2GB大小的文件大小?

我发现下面的链接。

1)The best way to get the file size which greater than 2GB in php?

2)java get file size efficiently

,但我想向您请教如何做到这一点在Java中的家伙。第二个有限制,这就是为什么我认为不适合回答我的问题。

+1

什么限制是存在于第二柱?为什么它不适合你的问题? – 2011-06-02 00:44:29

+2

你能告诉为什么java.io.File.length()有一个限制,为什么是第一个链接,甚至在这里只专注于PHP – 2011-06-02 00:48:11

To quote @JeffFoster和@jsight的其他问题,你链接到:

先衡量它 - 它是你在你的具体情况真的很慢?如果它不会引起问题,那么没有关键的问题会发生!

获取文件的长度将需要一个系统调用,不管你怎么做。如果它通过网络或其他非常慢的文件系统,速度可能会很慢。没有比File.length()更快的方法来获取它,而这里“慢”的定义只是意味着不要不必要地调用它。

只要看看你的第二个链接,

java get file size efficiently

选中的答案似乎告诉你,你问的一切。除非我错过了一些东西。

File.length()是完美的,比使用FileChannel或URL更快。在java get file size efficiently的接受答案中的测试实际上显示了这一点,但在这个答案中的测试结果的解释是错误的(我刚刚在那里添加了一条评论)。

也许你想知道如何获得大于2GB的文件大小,因为int的最大值是2^32?

那么,你知道java.io.File.length()返回一个长 - 而不是一个int?也就是说,它返回一个64位的整数,而不是32位的一个

http://download.oracle.com/javase/6/docs/api/java/io/File.html#length()