C#中如何实现多个观测数据对象序列化和反序列化?

问题是这样的:观测数据每个时次要存储两种数据,对象a,对象b;每天还要存储一个对象c,即每天有24个对象a+b,1个对象c,我如何反序列化读出任意时次的对象a和对象b?在... 问题是这样的:观测数据每个时次要存储两种数据,对象a,对象b;每天还要存储一个对象c,即每天有24个对象a+b,1个对象c,我如何反序列化读出任意时次的对象a和对象b?在线等
问题是写入数据的时候使用的结构体直接写入,这样,有办法在C#中按照结构体读出来吗?高手
展开
 我来答
xyz136299110
2012-06-21 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:251
采纳率:100%
帮助的人:147万
展开全部
可以考虑根据时间加标记然后把标记也序列化入对象中。然后以这个为key反序列化得到对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
百度网友8eb489e
2012-06-20 · TA获得超过659个赞
知道小有建树答主
回答量:348
采纳率:100%
帮助的人:329万
展开全部
序列化似乎无法跳跃,只能顺序读取。
可考虑使用 BinaryWriter 写 BinaryReader读。
按位置写:
FileStream fs;
BinaryWriter bw;
fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
bw = new BinaryWriter(fs);
internal void WriteValue(byte[] values, long position)
{
bw.BaseStream.Seek(position, SeekOrigin.Begin);
bw.Write(values);
}
按位置读:
FileStream fs;
BinaryReader br;
fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.Read);
br = new BinaryReader(fs);
br.BaseStream.Seek(0L, SeekOrigin.Begin);
public byte[] ReadValue(long position,int size)
{
br.BaseStream.Seek(position, SeekOrigin.Begin);
return br.ReadBytes(size);
}
这样只需计算对象a和b所占字节,以及你要的数据与当前末尾数据之间有几个a和b以及c通过Seek()来控制文件指针位置读取。当然还要配套的a b c对象与字节串之间的转化函数。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式