Java FileChannel.size()vs File.length()

时间:2014-01-22 20:14:28

标签: java file io stream channel

FileChannel.size()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();

1 个答案:

答案 0 :(得分:0)

它们可能不同,因为new File(name).length()总是检查给定的路径。当您使用FileInputStream时,无论发生什么情况,都会附加到该文件。

例如,在Linux中,您可以重命名,替换或删除正在使用的文件。 FileInputStream将继续提供原始文件的大小,而File将为您提供替换它的内容(如果有)。