小编hel*_*ist的帖子

如何在C#中快速读取二进制文件?(ReadOnlySpan与MemoryStream)

我正在尝试尽可能快地解析二进制文件。所以这是我首先尝试做的:

using (FileStream filestream = path.OpenRead()) {
   using (var d = new GZipStream(filestream, CompressionMode.Decompress)) {
      using (MemoryStream m = new MemoryStream()) {
         d.CopyTo(m);
         m.Position = 0;

         using (BinaryReaderBigEndian b = new BinaryReaderBigEndian(m)) {
            while (b.BaseStream.Position != b.BaseStream.Length) {
               UInt32 value = b.ReadUInt32();
}  }  }  }  }
Run Code Online (Sandbox Code Playgroud)

哪里 BinaryReaderBigEndian类,因为它实现方式是:

public static class BinaryReaderBigEndian {
   public BinaryReaderBigEndian(Stream stream) : base(stream) { }

   public override UInt32 ReadUInt32() {
      var x = base.ReadBytes(4);
      Array.Reverse(x);
      return BitConverter.ToUInt32(x, 0);
}  }
Run Code Online (Sandbox Code Playgroud)

然后,我尝试使用ReadOnlySpan代替 …

.net html c# memorystream

10
推荐指数
1
解决办法
1626
查看次数

标签 统计

.net ×1

c# ×1

html ×1

memorystream ×1