2011-08-11 117 views
-1

我陷入了一個問題。在Java中獲取文件的實際大小?

  1. 我開始從下載洪流文件。 文件的總大小爲699 MB。
  2. 不過一分鐘我停止我的BT客戶端後,BT客戶端顯示7 MB的數據已被下載的,我只有1隊列文件。
  3. 使用Java IO函數I計算文件的長度,並將其顯示699 MB大小的

文件文件=新的文件(「d:/Easy.A.2010.BDRip.XviD-iMBT/easy.a .2010.bdrip.xvid-imbt.avi「);

System.out.println("File Size="+file.length()); 

//轉換爲MB的我得到它是699 MB

在以後的階段我是分割文件轉換成不同的大小相等的部分,並上傳到服務器後。作爲文件大小不是文件的實際大小,所以我得到異常

java.lang.NegativeArraySizeException 

請告訴我,我怎樣才能得到文件的實際大小,或獲取有關它是完整的文件或沒有文件信息。

感謝

+0

所有尺寸的部分是可以理解的,但我們需要看到代碼,你得到的異常,因爲這是沒有什麼用這樣的文件大小 – Mark

+0

當你創建一個數組檢查什麼價值,你正在使用?我們可以看到你的代碼 – doNotCheckMyBlog

+0

的一些相關的部分,我想你正在做的事情一樣 的String [] =負新的String [-1]其中,「1」可能是您的變量的值,你正在使用實例化您的陣列 – doNotCheckMyBlog

回答

2

我不知道這是否是相關的,但所有的洪流客戶我已經使用在下載開始創建最終大小的文件。

即,對於699 MB電影,在開始時會創建一個空白的699 MB文件,而僅下載7 MB意味着已填充7 MB的空白,但磁盤上的文件大小仍爲699 MB全部下載。

+0

是的,你是對的。 ,我只想要一個解決方案,我的程序應該顯示該文件的大小爲7MB。 – Asghar

+0

一個'空白'699 MB文件? :) – amal

+0

@amal我的意思是佔用699 MB磁盤空間的文件,但包含垃圾/隨機數據。 –

1

Angit是正確的,洪流客戶端箱空白文件的大小= torrent_file,如果你下載7MB然後它填補了空白文件,如果你想計算首先檢查,看看文件,該torrent客戶端創建填充空白那麼你可以計算你有多少空白或非空白,然後很容易:)。

1

下定決心。你的問題是關於文件大小還是NegativeArraySizeException? File.length()會根據上次更新目錄的時間給出文件的長度。如果該文件仍處於打開狀態並且仍在擴展中,則該信息可能不是最新的。

+0

我的問題是關於文件的實際大小。我的意思是7MB – Asghar

相關問題