C#中如何实现多个观测数据对象序列化和反序列化?
问题是这样的:观测数据每个时次要存储两种数据,对象a,对象b;每天还要存储一个对象c,即每天有24个对象a+b,1个对象c,我如何反序列化读出任意时次的对象a和对象b?在...
问题是这样的:观测数据每个时次要存储两种数据,对象a,对象b;每天还要存储一个对象c,即每天有24个对象a+b,1个对象c,我如何反序列化读出任意时次的对象a和对象b?在线等
问题是写入数据的时候使用的结构体直接写入,这样,有办法在C#中按照结构体读出来吗?高手 展开
问题是写入数据的时候使用的结构体直接写入,这样,有办法在C#中按照结构体读出来吗?高手 展开
展开全部
可以考虑根据时间加标记然后把标记也序列化入对象中。然后以这个为key反序列化得到对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
序列化似乎无法跳跃,只能顺序读取。
可考虑使用 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对象与字节串之间的转化函数。
可考虑使用 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对象与字节串之间的转化函数。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询