/// <summary> /// Initializes a new instance of the <see cref="EndianBinaryWriter"/> class. /// </summary> /// <param name="bitConverter">The bit converter.</param> /// <param name="stream">The stream.</param> /// <param name="encoding">The encoding.</param> /// <exception cref="System.ArgumentException">Stream is not writable</exception> public EndianBinaryWriter(EndianBitConverterBase bitConverter, Stream stream, Encoding encoding) { bitConverter = bitConverter ?? new BigEndianBitConverter(); stream = stream ?? new MemoryStream(); encoding = encoding ?? Encoding.UTF8; if (!stream.CanWrite) { throw new ArgumentException("Stream is not writable", nameof(stream)); } BaseStream = stream; BitConverter = bitConverter; Encoding = encoding; }
/// <summary> /// Initializes a new instance of the <see cref="EndianBinaryWriter"/> class. /// </summary> /// <param name="bitConverter">The bit converter.</param> /// <param name="stream">The stream.</param> /// <param name="encoding">The encoding.</param> /// <exception cref="System.ArgumentException">Stream is not writable</exception> public EndianBinaryWriter(EndianBitConverterBase bitConverter, Stream stream, Encoding encoding) { bitConverter ??= new BigEndianBitConverter(); stream ??= new MemoryStream(); encoding ??= Encoding.UTF8; if (!stream.CanWrite) { throw new ArgumentException(Properties.Resources.StreamNotWritableError, nameof(stream)); } BaseStream = stream; BitConverter = bitConverter; Encoding = encoding; }
/// <summary> /// Initializes a new instance of the <see cref="EndianBinaryReader"/> class. /// </summary> /// <param name="bitConverter">The bit converter.</param> /// <param name="stream">The stream.</param> /// <param name="encoding">The encoding.</param> /// <exception cref="System.ArgumentException">Stream is not readable</exception> public EndianBinaryReader(EndianBitConverterBase bitConverter, Stream stream, Encoding encoding) { bitConverter = bitConverter ?? new BigEndianBitConverter(); stream = stream ?? new MemoryStream(); encoding = encoding ?? Encoding.UTF8; if (!stream.CanRead) { throw new ArgumentException("Stream is not readable", nameof(stream)); } BaseStream = stream; BitConverter = bitConverter; Encoding = encoding; decoder = encoding.GetDecoder(); minBytesPerChar = 1; if (encoding is UnicodeEncoding) { minBytesPerChar = 2; } }
/// <summary> /// Initializes a new instance of the <see cref="EndianBinaryReader"/> class. /// </summary> /// <param name="bitConverter">The bit converter.</param> /// <param name="stream">The stream.</param> public EndianBinaryReader(EndianBitConverterBase bitConverter, Stream stream) : this(bitConverter, stream, Encoding.UTF8) { }
/// <summary> /// Reads the boolean. /// </summary> /// <returns>The resulting boolean</returns> public bool ReadBoolean() { ReadInternal(buffer, 1); return(EndianBitConverterBase.ToBoolean(buffer, 0)); }