讓我們假設我有一個有效的Java FileDescriptor
這是我在這樣得到:有沒有辦法讓文件大小隻有FileDescriptor?
FileInputStream is = new FileInputStream("/some/path/to/file.txt");
FileDescriptor fd = is.getFD();
現在請忘記我知道文件的路徑。我唯一擁有的是FileDescriptor
。有沒有簡單的方法知道文件的大小? 現在我已經檢查了:
FileDescriptor
有valid()
方法,可以告訴我,如果它是有效的 但沒有length()
或size()
功能。FileInputStream
不返回的路徑和因爲它是一個流它 顯然不會告訴我的文件大小。File
(http://docs.oracle.com/javase/7/docs/api/java/io/File.html) 其中length()
方法沒有能夠處理的構造函數 FileDescriptor。
我知道我可以讀取整個流並總結長度,但我不認爲它是簡單的方法。
您是否嘗試過inputStream.available()? – Stefan
否因爲API(http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#available%28%29)指出函數返回:字節數的估計值即可以從這個輸入流中讀取(或跳過)而不阻塞,或者當它到達輸入流的末尾時讀取(或跳過)。 – user1723095
@Stefan它會可靠嗎?這是一個估計,只涵蓋非阻塞。我想在一個文件上它可能是好的,但我不認爲有任何保證。 –