在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();
答案 0 :(得分:0)
它们可能不同,因为new File(name).length()
总是检查给定的路径。当您使用FileInputStream
时,无论发生什么情况,都会附加到该文件。
例如,在Linux中,您可以重命名,替换或删除正在使用的文件。 FileInputStream
将继续提供原始文件的大小,而File
将为您提供替换它的内容(如果有)。