在C#中的MemoryStream上使用BinaryReader

时间:2014-10-08 18:45:13

标签: c# memorystream binaryreader

我正在使用内存阅读器来读取文件并将其放入MemoryStream中。 MemoryStream已填充,我正在尝试使用BinaryReader读取,因为文件的字节序更改,因此我使用可以检测字节序的二进制读取器。

当我使用BinaryReader.Read或BinaryReader.ReadString或BinaryReader.ReadByte时,它会读取正确的数据,但是当我使用ReadInt16或其他类似数据时,我得不到正确的数据。是否可以使用它们,我犯了一个错误,或者我应该使用Read()代替?

代码:

  MemoryStream ms = new MemoryStream();
  object[] binMakerNoteObj = exif.findTag(37500).data;
  byte[] binMakerNote = binMakerNoteObj.Cast<byte>().ToArray();
  ms.Write(binMakerNote, 0, binMakerNote.Length);
  ms.Position = 0;

  // Read the header
  string t = "";
  for(int i = 0; i < 6; i ++)
        t += fileStream.ReadChar();
  version = fileStream.ReadUInt16();
  unknow = fileStream.ReadUInt16();
  byteOrder = fileStream.ReadUInt16();

0 个答案:

没有答案