JD2022-TU1/main/tools/framework/JD.Serialization/Serializers/Binary/BigEndianBinaryReader.cs

51 lines
No EOL
1.3 KiB
C#

using System;
using System.IO;
namespace JD.Serialization
{
class BigEndianBinaryReader : BinaryReader
{
public BigEndianBinaryReader(Stream stream)
: base(stream)
{ }
public override float ReadSingle()
{
var a32 = base.ReadBytes(4);
Array.Reverse(a32);
return BitConverter.ToSingle(a32, 0);
}
public override double ReadDouble()
{
var a64 = base.ReadBytes(8);
Array.Reverse(a64);
return BitConverter.ToDouble(a64, 0);
}
public override int ReadInt32()
{
var a32 = base.ReadBytes(4);
Array.Reverse(a32);
return BitConverter.ToInt32(a32, 0);
}
public override Int16 ReadInt16()
{
var a16 = base.ReadBytes(2);
Array.Reverse(a16);
return BitConverter.ToInt16(a16, 0);
}
public override Int64 ReadInt64()
{
var a64 = base.ReadBytes(8);
Array.Reverse(a64);
return BitConverter.ToInt64(a64, 0);
}
public override UInt32 ReadUInt32()
{
var a32 = base.ReadBytes(4);
Array.Reverse(a32);
return BitConverter.ToUInt32(a32, 0);
}
}
}