1. 解答
不一定相等。
2. 原理
file.length() 方法返回的是文件的长度,单位是字节,表示整个文件的大小。而 inputStream.available() 方法返回的是当前输入流中可读取的字节数,它可能小于或等于文件的长度,具体取决于输入流的类型和状态。
例如,如果使用 FileInputStream 读取文件,则在读取文件的过程中,available() 方法将返回当前剩余可读取的字节数。如果读取到文件末尾,则 available() 方法将返回 0。因此,如果在读取文件时调用 available() 方法,它可能小于文件大小。而且,当文件被另一个程序修改时,文件的长度可能会发生更改,但是输入流的可读取字节数并不会立即发生变化。
因此,如果想确保读取整个文件,建议使用文件的长度作为读取的字节数,而不是使用 available() 方法。