none
使用Struct做为文件的内部结构, RRS feed

  • 问题

  • 使用struct做为文件内部的结构块进行存储。

    定义了文件头,分类头等结构。这些结构中含有指向父、子、兄级的long position.但是,在存储时并不能立马确定有多少内容需要存储。所以,在向文件写入时,结构块的位置是不确定值。

    若使用内存映射文件的方式是可以直接修改position值,但内存映射文件需要先给出一个固定的文件大小,以及使用Write<T>()方法时限制条件太多,不方便。

    不使用内存映射文件,直接将结构体转成byte[]写的话,position又让人头疼。总不能在写一个子类列表后再回到父类,将父类的Next写入到文件吧?

    哪位兄弟有高见?敬待。

    2014年4月24日 11:44

答案

  • 你好:

    欢迎来到MSDN中文论坛。

    请问你使用的是哪种语言?你能把你现在已经写好的代码贴出来吗?这样大家可以参考你的代码然后进行改进。

    据我所知内存映射文件一般用在大文件存取上的,而Struct一般是用来存储少量数据用的,普通的I/O操作就可以满足要求。如果你的Struct不是太复杂的话我觉得你完全可以通过序列化的方式直接存储到文件中,或者转换为byte[]通过字节流写入到文件中。

    请参考这篇帖子中的代码:

    Writing bytes from a struct into a file with c#


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2014年4月25日 3:18
    版主