我正在尝试读取InputStream
文件的标题。每个标题信息均包含信息。但是,我很难理解读取标题的过程。
例如,我有:
InputStream sourceFile = //.... stuff.
sourceFile.read() | (sourceFile.read() << 8) | (sourceFile.read() << 16)
| (sourceFile.read() << 24)
从示例代码。
为什么我不只使用一次
sourceFile.read()
?单个|
是什么意思,在特定情况下<< number
是什么意思?感谢您的澄清!
最佳答案
read()
返回int
,但是它从文件中读取一个字节,因此,其想法是获取前4个字节并将其转换为32位int(同时更改其endianness)。
您引用的运算符是二进制和按位运算符。有关更多信息,请参考here。