/// <summary> /// Initializes a new instance of the <see cref="EndianBinaryReader"/> class. /// Constructs a new binary reader with the given bit converter, reading /// to the given stream, using the given encoding. /// </summary> /// <param name="endianness">Endianness to use when reading data</param> /// <param name="stream">Stream to read data from</param> /// <param name="encoding">Encoding to use when reading character data</param> public EndianBinaryReader(Endianness endianness, Stream stream, Encoding encoding) { Guard.NotNull(stream, nameof(stream)); Guard.NotNull(encoding, nameof(encoding)); Guard.IsTrue(stream.CanRead, nameof(stream), "Stream isn't readable."); this.BaseStream = stream; this.BitConverter = EndianBitConverter.GetConverter(endianness); this.Encoding = encoding; this.decoder = encoding.GetDecoder(); this.minBytesPerChar = 1; if (encoding is UnicodeEncoding) { this.minBytesPerChar = 2; } }
/// <summary> /// Initializes a new instance of the <see cref="EndianBinaryWriter"/> class /// with the given bit converter, writing to the given stream, using UTF-8 encoding. /// </summary> /// <param name="bitConverter">Converter to use when writing data</param> /// <param name="stream">Stream to write data to</param> public EndianBinaryWriter(EndianBitConverter bitConverter, Stream stream) : this(bitConverter, stream, Encoding.UTF8) { }