none
保存数据结构的问题 RRS feed

  • 问题

  • 我定义了一个数据结构,也就是一个类,放到内存中,存储着填好的数据,我想要把它从内存中存储到硬盘上成为一个文件,而后又可以读取这个文件还原原来的数据。可以做到么,用什么方法呢?二进制流保存可以么
    2010年11月14日 7:32

答案

  • 感谢回复,我的意思是将一个类的对象整个存入一个文件,而不是用DATATABLE存入,再变XML,我已经找到方法了,可以将类的对象序列化
    2010年11月15日 6:50

全部回复


  • 我定义了一个数据结构,也就是一个类,放到内存中,存储着填好的数据,我想要把它从内存中存储到硬盘上成为一个文件,而后又可以读取这个文件还原原来的数据。可以做到么,用什么方法呢?二进制流保存可以么

    dear
    你可使用DataTable类别来存放成XML挡案

    写挡
    DataTable.WriteXml()方法
    http://msdn.microsoft.com/zh-cn/library/system.data.datatable.writexml.aspx

    读挡时用
    DataTable.ReadXmlSchema()方法 - 先如入资料结构
    http://msdn.microsoft.com/zh-cn/library/system.data.datatable.writexml.aspx

    DataTable.ReadXml()方法 - 再读入资料
    http://msdn.microsoft.com/zh-cn/library/system.data.datatable.readxml.aspx

    我写一个简单的范例提供给您参考,存挡

          DataTable table = new DataTable("Table");
          DataColumn column = new DataColumn();
          column.Caption = "v";
          column.ColumnName = "v";
          table.Columns.Add(column);
    
          DataRow row = table.NewRow();
          row["v"] = "123";
          table.Rows.Add(row);
    
          table.WriteXml(@"D:\test.xml");
    

     

    读挡

          DataTable table = new DataTable("Table");
          table.ReadXmlSchema(@"D:\test.xml");
          table.ReadXml(@"D:\test.xml");
          this.dataGridView1.DataSource = table;
    


    秘訣無它,唯勤而已
    2010年11月14日 10:08
  • 感谢回复,我的意思是将一个类的对象整个存入一个文件,而不是用DATATABLE存入,再变XML,我已经找到方法了,可以将类的对象序列化
    2010年11月15日 6:50
  • 感谢回复,我的意思是将一个类的对象整个存入一个文件,而不是用DATATABLE存入,再变XML,我已经找到方法了,可以将类的对象序列化

    dear

    你可以将你得到的结果分享出来,再标答案,否则以后谁想回你问题啊??


    秘訣無它,唯勤而已
    2010年11月15日 7:48
  • 利用 System.Runtime.Serialization.Formatters.BinaryFormatter 直接序列化/反序列化。或者如果要 XML 的话直接用 System.Runtime.DataContractSerializer / System.Xml.XmlSerializer 进行序列化/反序列化。
    Mark Zhou
    2010年11月15日 13:59