我正在尝试读取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

09-11 20:30