2014-01-22 44 views
0

有沒有什麼情況下channel_size和file_length會不同?請參閱下面的代碼示例:Java Channel.size()vs File.length

File file = new File(name); 
FileInputStream stream = new FileInputStream(file); 
FileChannel channel = stream.getChannel(); 
long channel_size = channel.size(); 
long file_length = file.length(); 
+0

爲什麼不打印出這兩個值並查看它們是否不同? –

+0

@JoshM我認爲OP正在尋找他們不會的情況。 –

回答

0

它們可以不同,因爲new File(name).length()總是檢查給定的路徑。當您使用FileInputStream時,您將附加到該文件,而不管它發生了什麼。

例如,在Linux中,您可以重命名,替換或刪除正在使用的文件。 FileInputStream將繼續給出原始文件的大小,而File會給你替換它的東西,如果有的話。

+0

謝謝,這正是我需要知道的。 – Matt