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); } } }