文件流的使用以及序列化和反序列化的方法使用

步骤一:引入IO文件和二进制格式序列化文件

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
步骤二:将图书对象保存到文件(运用文件流存储图书列表)

FileStream fs = new FileStream("bookList.obj", FileMode.Create);//在根目录下创建bookList.obj文件
BinaryFormatter bf = new BinaryFormatter();//创建二进制格式化器  bookList不能直接加到文件流对象中需要二进制格式化器进行序列化(简单理解成把水变为冰的过程)
bf.Serialize(fs,bookList);//把当前集合序列化到文件
fs.Close();//关闭文件流

步骤三:将对象变为可序列化的对象

在类前面加上[Serealizable]

步骤四:从文件中读取图书列表

 if(!File.Exists("bookList.obj")){
       return;
     }
 FileStream fs = new FileStream("bookList.obj", FileMode.Open);
 BinaryFormatter bs = new BinaryFormatter();
 this.bookList=(List<Book>)bs.Deserialize(fs);
 fs.Close();

文件读取器的使用:

  //创建文件流和文件读取器
            FileStream fs = new FileStream(path, FileMode.Open);
            StreamReader sr = new StreamReader(fs,Encoding.Default);//读取的文件流和默认的编码
            tvDate = sr.ReadLine(); //读取文本第一行的电视节目日期