先说字节流:
//字节流读写 //写入 //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();