dat文件序列化和反序列化

不知道哪拷过来的代码,只为记录方便记忆,现在经常和数据打交道应该用的到。

主函数:

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

namespace ConsoleApplication4
{
    class Program
    {
        static string path = @"D:\code\XML\";
        static string fs1Name = @"serializePeople1.dat";
        static string fs2Name = @"serializePeople2.dat";
        FileStream fs1 = new FileStream(path + fs1Name, FileMode.Create);
        People p1 = new People() { Name = "zhidao91", Age = 13 };
        FileStream fs2 = new FileStream(path + fs2Name, FileMode.Create);
        List<People> ps2 = new List<People>();
        public void Write()
        {
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(fs1, p1);
            fs1.Close();
        }
        public void Read()
        {
            fs1 = new FileStream(path + fs1Name, FileMode.Open);
            BinaryFormatter bf = new BinaryFormatter();
            People p = bf.Deserialize(fs1) as People;
            fs1.Close();
        }
        public void WriteList()
        {
            BinaryFormatter bf = new BinaryFormatter();
            ps2.Add(new People() { Name = "zhidao", Age = 14 });
            ps2.Add(new People() { Name = "zhidao91", Age = 13 });

            bf.Serialize(fs2, ps2);
            fs2.Close();
        }
        public void ReadList()
        {
            fs2 = new FileStream(path + fs2Name, FileMode.Open);
            BinaryFormatter bf = new BinaryFormatter();
            List<People> ps = bf.Deserialize(fs2) as List<People>;
            fs2.Close();
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            p.Write();
            p.Read();
            p.WriteList();
            p.ReadList();
        }
    }
}

people类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication4
{
    [Serializable]
    public class People
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
}

自己的代码看起来自己都嫌弃。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值