请问c#如何将一结构数据写入二进制文件。如:
Public struct Student
{
      Public int id;
      public string name;
}
要把这个数据写到一个二进制文件里,在怎么读出来,还有在读的时候如何知道字符串结束呢。谢谢!

解决方案 »

  1.   

    拆开来存储把
    先存一个int类型id
    在存一个int类型的name长度
    然后在存char[]的name
      

  2.   

    二进制文件什么时候又冒出字符串出来了?参阅:BinaryFormatter类。
      

  3.   

    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;
    [Serializable ]
        public struct Student
        {
          public  int id;
          public string name;
        }
    Student student = new Student();
                student.id = 12;
                student.name = "test";
                IFormatter formater = new BinaryFormatter();
                Stream stream = new FileStream("UserInfo.bin", FileMode.Create, FileAccess.Write, FileShare.None);
                formater.Serialize(stream, student);
                stream.Close();
      

  4.   

    //再读出来
            stream = new FileStream("UserInfo.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
                Student me = (Student)formater.Deserialize(stream);
                stream.Close();            Console.WriteLine("student id: {0}", me.id);
                Console.WriteLine("student name: {0}", me.name);            Console.WriteLine();