public void Write(Stream stream) { byte[] magic = Encoding.ASCII.GetBytes("RMAN"); byte major = 2; byte minor = 0; byte unknown = 0; byte signatureType = 0; int contentOffset = 4 + 4 + 4 + 4 + 8 + 4; byte[] uncompressedFile = new byte[FlatBufferSerializer.Default.GetMaxSize(this._body)]; int uncompressedContentSize = FlatBufferSerializer.Default.Serialize(this._body, uncompressedFile); Array.Resize(ref uncompressedFile, uncompressedContentSize); byte[] compressedFile = Compression.CompressZStandard(uncompressedFile); int compressedContentSize = compressedFile.Length; using (BinaryWriter bw = new BinaryWriter(stream)) { bw.Write(magic); bw.Write(major); bw.Write(minor); bw.Write(unknown); bw.Write(signatureType); bw.Write(contentOffset); bw.Write(compressedContentSize); bw.Write(this.ID); bw.Write(uncompressedContentSize); bw.Write(compressedFile); } }