2013-01-23 100 views
63

可能重複:
java get file size efficiently獲取文件的總大小以字節爲單位

我有一個名爲文件名,位於E://file.txt文件。

FileInputStream fileinputstream = new FileInputStream(filename); 

我想要做的是計算此文件的大小以字節爲單位。我怎麼能做到這一點?

+0

你爲什麼要用fileinputstream做到這一點? – SomeJavaGuy

+1

這不是一個重複的答案。如何獲得文件大小以及如何有效地獲取文件大小是兩個不同的主題。 –

+0

@JanBodnar你可以提名重新打開這個問題。 – Illep

回答

141

您可以使用File上的length()方法返回大小(以字節爲單位)。

5

你可以用Files.size(new File(filename).toPath())這麼簡單。

+0

事後看來,需要'Path'和'File'可能會非常冗長,@ Swapnil的答案可能更簡潔。 – akaIDIOT

+0

是的,但Java.nio.Files是爲java 1.7+定義的 –

+0

請注意,Java 1.6已經有一段時間了。即使到2015年4月,1.7也是有效的。我認爲1.7+以上的版本並不是真正的問題。 – akaIDIOT

34

您不需要FileInputStream來計算文件大小,new File(path_to_file).length()就足夠了。或者,如果您堅持,請使用fileinputstream.getChannel().size()

+0

它返回什麼? 'fileinputstream.getChannel()。size()' – Illep

+1

請參考http://docs.oracle.com/javase/6/docs/api/java/nio/channels/FileChannel.html#size() –

3
public static void main(String[] args) { 
     try { 
      File file = new File("test.txt"); 
      System.out.println(file.length()); 
     } catch (Exception e) { 
     } 
    } 
相關問題