프로그래밍 노트

C#에서 Binary 방식 직렬화(Serialization) 예제 소스 본문

C#/기초

C#에서 Binary 방식 직렬화(Serialization) 예제 소스

떡잎 2012. 12. 12. 18:43

이 글에는 왜 직렬화를 하는지는 언급하지 않는다.

바이너리 파일로 직렬화를 하면 파일이 바이너리 형식으로 저장된다.

using System;
using System.IO;
using System.Collections;
using System.Runtime.Serialization.Formatters.Binary;

namespace SerializationBin
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList MyList = new ArrayList();

            for (int i = 0; i < 5; i++)
            {
                MyList.Add(i);
            }
            for (int i = 0; i < MyList.Count; i++)
            {
                Console.WriteLine(MyList[i]);
            }
            Console.WriteLine();

            
            FileStream StreamOut = new FileStream("TestBin", FileMode.Create);
            // Binary 직렬화 Fomatter
            BinaryFormatter BinaryOut = new BinaryFormatter();

            Console.WriteLine("#Serializing");
            // 직렬화 serializing
            BinaryOut.Serialize(StreamOut, MyList);
            StreamOut.Close();


            //============================================================
            
       
            FileStream StreamIn = new FileStream("TestBin", FileMode.Open);
            BinaryFormatter BinaryIn = new BinaryFormatter();

            Console.WriteLine("#Deserializing");
            Console.WriteLine();
            // 역직렬화 Deserializing
            ArrayList ListReadData = (ArrayList)BinaryIn.Deserialize(StreamIn);
            StreamIn.Close();

            for (int i = 0; i < ListReadData.Count; i++)
            {
                Console.WriteLine(ListReadData[i]);
            }

            Console.ReadLine(); 
        }
    }
}

Binary 방식 직렬화에서 참조하는 using System.Runtime.Serialization.Formatters.Binary는 별도로 참조를 하지 않아도 기본적으로 참조되어있다.

Comments