1. ホーム
  2. c#

メモリーストリームとファイルストリームの違い

2023-08-31 11:46:44

質問

シリアライズの際、メモリストリームとファイルストリームのどちらかを使用することができます。

この2つの基本的な違いは何ですか?メモリストリームの意味は何ですか?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;

namespace Serilization
{
    class Program
    {
        static void Main(string[] args)
        {
            MemoryStream aStream = new MemoryStream();
            BinaryFormatter aBinaryFormat = new BinaryFormatter();
            aBinaryFormat.Serialize(aStream, person);
            aStream.Close();
        }
    }
}

どのように解決するのですか?

Streamはバイトの表現です。これらのクラスは、定義上抽象であるStreamクラスから派生しています。

名前が示すように、FileStreamはファイルに対して読み書きを行うのに対し、MemoryStreamはメモリに対して読み書きを行います。つまり、ストリームがどこに保存されているかに関係します。

さて、これら2つのストリームをどのように使用するかによります。例えば、データベースからバイナリデータを読み取る場合は、MemoryStreamを使用します。しかし、システム上のファイルを読み取るのであれば、FileStreamを使用することになります。

メモリーストリームの利点は、アプリケーションで一時的なバッファやファイルを作成する必要がないことです。