클래스나 구조체 같은 복잡한 이진 데이터를 저장할때 사용하는 방법.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.IO; // 파일 스트림 처리

namespace OpenFile
{
    public partial class Form1 : Form
    {
        Human Kim = new Human("김용연", 28);
        public Form1()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream(@"c:\kim.bin", FileMode.Create, FileAccess.Write);
            BinaryWriter bw = new BinaryWriter(fs);
            Kim.Write(bw);
            fs.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "파일을 읽는 중";
            textBox1.Refresh();
            System.Threading.Thread.Sleep(1000);
            FileStream fs = new FileStream(@"c:\kim.bin", FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            Kim = Human.Read(br);
            fs.Close();
            textBox1.Text = Kim.ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = Kim.ToString();
        }
    }
    class Human
    {
        private string Name;
        private int Age;
        private float Temp;
        public Human(string aName, int aAge)
        {
            Name = aName;
            Age = aAge;
            Temp = 1.23f;
        }
        public override string ToString()
        {
            Temp += 1;
            return "이름:" + Name + ",나이:" + Age;
        }
        public void Write(BinaryWriter bw)
        {
            bw.Write(Name);
            bw.Write(Age);
        }
        public static Human Read(BinaryReader br)
        {
            return new Human(br.ReadString(), br.ReadInt32());
        }
    }
}

'객체지향언어 > C#' 카테고리의 다른 글

FileWatcher 예제  (0) 2009.08.09
GetFiles 예제  (0) 2009.08.09
메모장 흉내내기~  (0) 2009.08.08
Stream을 이용한 파일 입출력 예제  (0) 2009.08.08
File Open, Folder Open 예제  (0) 2009.08.08

+ Recent posts