バイト配列をFileStreamに読み込む方法 質問する

バイト配列をFileStreamに読み込む方法 質問する

バイト配列があり、そのバイト配列を FileStream に読み込みたいと考えています。以下はサンプル コードです。

string fileName = "test.txt";
byte[] file = File.ReadAllBytes(Server.MapPath("~/Files/" + fileName));
FileStream fs = new FileStream();
fs.ReadByte(file);
object obj = LoadFile<object>(fs);

public static T LoadFile<T>(FileStream fs)
{
    using (GZipStream gzip = new GZipStream(fs, CompressionMode.Decompress))
    {
        BinaryFormatter bf = new BinaryFormatter();
        return (T)bf.Deserialize(gzip);
    }
}

上記の方法では、バイト配列を読み取るために FileStream を使用していますが、残念ながら fs.ReadByte はバイト配列を読み取ることができません。メソッド「LoadFile」のパラメータとして使用するためにバイト配列を FileStream に読み込む方法に焦点を当てて支援してください。ここでのファイルはデータベースや他のソースなど他の場所から読み込まれるため、ファイルを FileStream に直接読み込まないでください。

ベストアンサー1

string fileName = "test.txt";
byte[] file = File.ReadAllBytes(Server.MapPath("~/Files/" + fileName));
MemoryStream memStream = new MemoryStream();
BinaryFormatter binForm = new BinaryFormatter();
memStream.Write(file, 0, file.Length);
memStream.Seek(0, SeekOrigin.Begin);
Object obj = (Object)binForm.Deserialize(memStream);

おすすめ記事