public static NumberField DecodingLong(Stream stream) { var begin = stream.ReadByte(); if (begin != _startInt) { throw new Exception("整数开始字节错误"); } int lengthNeedRead = 0; while (true) { var b = stream.ReadByte(); if (b == _end) { break; } lengthNeedRead++; } stream.Position = stream.Position - lengthNeedRead - 1; byte[] intBuf = new byte[lengthNeedRead]; stream.EnsureRead(intBuf, 0, lengthNeedRead); stream.ReadByte(); var longStr = Encoding.UTF8.GetString(intBuf); if (!long.TryParse(longStr, out long intVal)) { throw new Exception("整数内容的格式错误"); } return(NumberField.Create(intVal)); }