클래스나 구조체 같은 복잡한 이진 데이터를 저장할때 사용하는 방법.
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 |