using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace NormalizingApp.Lib
{
public class BinaryFile //二进制文件操作类
{
//序列化文件路径属性设置
public static string FileName{get;set;}
/// <summary>
/// 数据采集记录序列化保存到文件
/// </summary>
/// <param name="lst"></param>
public static void SaveBinary(List<object> lst)
{
try
{
if (!Directory.Exists(Path.GetDirectoryName(FileName)))//目录不存在,则创建目录
{
Directory.CreateDirectory(Path.GetDirectoryName(FileName));
}
FileStream fs = new FileStream(FileName, FileMode.OpenOrCreate);//打开或创建文件流
BinaryFormatter bf = new BinaryFormatter(); //初始化二进制格式化器
bf.Serialize(fs, lst);//将列表数据 序列化 写入文件流
fs.Close();//关闭文件流
}
catch
{
return;
}
}
/// <summary>
/// 读取文件并反序列化出结果
/// </summary>
/// <returns></returns>
public static List<object> ReadBinary() //读取二进制文件,反序列化到列表
{
List<object> lst = new List<object>();//初始化列表对象
if (File.Exists(FileName))//判断文件存在
{
try
{
FileStream fs = new FileStream(FileName, FileMode.OpenOrCreate);//打开或创建文件流
BinaryFormatter bf = new BinaryFormatter();
lst = bf.Deserialize(fs) as List<object>;//反序列化文件流 到列表
fs.Close();//关闭文件流
}
catch
{
return lst;
}
}
return lst;
}
}
}