我有一个二进制文件。当我运行ls -l时,它有12个字节。但是,当我尝试使用File.length查找文件的长度时,结果只有9.这是我的文件的十六进制表示(来自xxd -p
):
2090887fffd0ffff437ffd0c
这是代码
currentBytesRead = inputStream.read(buffer, bufferOffset, Math.min(1024, fileLength - bytesRead));
这是输入文件
我正在使用Ubuntu 14.04 64位
答案 0 :(得分:0)
来自Javadoc:
返回:
此抽象路径名表示的文件的长度(以字节为单位),如果该文件不存在,则为0L。某些操作系统可能返回0L表示路径名,表示依赖于系统的实体,例如设备或管道。
您确定文件路径是否正确?
答案 1 :(得分:0)
由于File.length()
几乎只是调用操作系统,因此不应发生这种差异。有几个可能的原因(从最明显到更模糊):