C#复习-字节流、序列化、反序列化

先说字节流:

 //字节流读写
            //写入
            //using (FileStream fs = new FileStream(@"C:\Users\fei\Desktop\新建文本文档.txt", FileMode.Append, FileAccess.Write)) {
            //    string s = "字节流测试";
            //    byte[] b = Encoding.Default.GetBytes(s);

            //    fs.Write(b,0,b.Length);
            //}
            //读取
            //using (FileStream fs = new FileStream(@"C:\Users\fei\Desktop\新建文本文档.txt", FileMode.OpenOrCreate, FileAccess.Read)) { 

            //    byte[] b = new byte[fs.Length];
            //   int r = fs.Read(b, 0, b.Length);
            //   string s = Encoding.Default.GetString(b,0,r);
            //   Console.WriteLine("读取到的数据:{0}",s);
            //}

序列化,这里是先实例化一个对象,然后把独享数值读取到文本中,在反序列化,对象:

//标记可序列化
        [Serializable]
        public class Person
        {

            public int age
            {
                get;
                set;
            }
            public string name
            {
                get;
                set;
            }
        }

序列化:

 //序列化与返序列化
            //创建对象
            Person p = new Person();
            p.age = 15;
            p.name = "张三";

            //序列化
            //using (FileStream fs = new FileStream(@"C:\Users\fei\Desktop\1.txt", FileMode.OpenOrCreate, FileAccess.Write)) {
            //    BinaryFormatter bf = new BinaryFormatter();
            //    bf.Serialize(fs,p);

            //}

反序列化,这里注意,序列化的时候要是个空文本,不然这里会出错:

 //反序列化
            using (FileStream fsr = new FileStream(@"C:\Users\fei\Desktop\1.txt", FileMode.OpenOrCreate, FileAccess.Read))
            {
                Person pp;
                BinaryFormatter bf = new BinaryFormatter();
                pp = (Person)bf.Deserialize(fsr);
                Console.WriteLine("反序列化:age:{0}", pp.age);
                Console.WriteLine("反序列化:name:{0}", pp.name);

            }


            Console.ReadKey();


猜你喜欢

转载自blog.csdn.net/qwqwdf/article/details/80329827