【Android】file.length和inputStream.available相等吗

file.length和inputStream.available相等吗

1. 解答

不一定相等。

2. 原理

file.length() 方法返回的是文件的长度,单位是字节,表示整个文件的大小。而 inputStream.available() 方法返回的是当前输入流中可读取的字节数,它可能小于或等于文件的长度,具体取决于输入流的类型和状态。

例如,如果使用 FileInputStream 读取文件,则在读取文件的过程中,available() 方法将返回当前剩余可读取的字节数。如果读取到文件末尾,则 available() 方法将返回 0。因此,如果在读取文件时调用 available() 方法,它可能小于文件大小。而且,当文件被另一个程序修改时,文件的长度可能会发生更改,但是输入流的可读取字节数并不会立即发生变化。

因此,如果想确保读取整个文件,建议使用文件的长度作为读取的字节数,而不是使用 available() 方法。

猜你喜欢

转载自blog.csdn.net/weixin_42473228/article/details/134191192