我有一些数据,我知道它的确切结构。它必须逐秒插入文件中。 结构包含double字段,但它们具有不同的名称。每秒必须将相同数量的结构写入文件
事情是...... 在阅读数据时,这是一个更好的appraoch
1-将Structs转换为字节,然后在索引标记第二个结尾的字节时插入它
2-写入CSV数据并索引标记第二个结尾的字节
从文件中随机请求数据。 所以在这两种情况下,我都会将FileStream的位置设置为第二个字节。
在第一种情况下,我将对该秒中的每个结构使用以下内容来获取整个数据
_filestream.Read(buffer, 0, buffer.Length);
GCHandle handle = GCHandle.Alloc(buffer, GCHandleType.Pinned);
oReturn = (object)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), _oType);
之前的方法应用X次,因为每秒大约有100个结构
在第二种情况下,我将使用string.Split(',')然后我会相应地填写数据,因为我知道我的数据的确切顺序
file.Read(buffer, 0, buffer.Length);
string val = System.Text.ASCIIEncoding.ASCII.GetString(buffer);
string[] row = val.Split(',');
修改 使用分析器没有显示出差异,但我无法模拟确切的现实生活场景,因为文件大小可能会变得非常大。我正在寻找现在的理论信息