2

後でファイルに書き込むか、ソケット経由で転送するバッファ内のバイナリ形式にデータをエンコードしたいと思います。List<byte>バイナリ データを含むを作成するために使用するのに最適な C# クラスはどれですか。

整数、シングル バイト文字列 (つまり、ASCII)、浮動小数点数、およびその他のデータを、カスタム エンコード形式 (文字列用) および int 型と浮動小数点型用の通常のバイナリ数値レイアウトでこのバッファーに格納します。

BinaryWriter必要なメソッドがあるように見えますが、List<byte>エンコードが完了したときに結果を生成するために、成長するバッファーを管理する必要があります。

ありがとう

4

2 に答える 2

7

BinaryWriterMemoryStreamへの書き込み。使用可能なメモリより多くが必要な場合は、一時ファイルストリームに簡単に切り替えることができます。

using (var myStream = new MemoryStream()) {
    using (var myWriter = new BinaryWriter(myStream)) {
        // write here
    }
    using (var myReader = new BinaryReader(myStream)) {
        // read here
    }

    // put the bytes into an array...
    var myBuffer = myStream.ToArray();

    // if you *really* want a List<Byte> (you probably don't- see my comment)
    var myBytesList = myStream.ToArray().ToList();
}
于 2012-05-08T14:21:40.783 に答える
2

BinaryWriter はストリームに書き込みます。MemoryStream を指定し、必要な場合は をList<byte>使用しますnew List<byte>(stream.GetBuffer())

于 2012-05-08T14:24:00.210 に答える