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;
}
}
}
【WPF】二进制文件操作类--对象列表序列化反序列化
最新推荐文章于 2023-11-16 14:38:14 发布
这段代码展示了如何在C#中使用BinaryFormatter类进行对象序列化和反序列化,以保存和读取数据采集记录到二进制文件。程序首先检查文件目录是否存在,然后创建或打开文件流,通过二进制格式化器将数据序列化写入或从文件中反序列化读取。如果过程中出现异常,则捕获并返回空列表。

1543

被折叠的 条评论
为什么被折叠?



