StreamWriter可以保存整个类吗?

时间:2016-11-16 17:49:55

标签: c# system.io.file streamwriter.write

我创建了一个请求用户输入的类(个别数据的7个文本框)

我需要保存该数据,以便以后在使用StreamWriter类的平面文件中使用。

我是否必须为每个字段创建单个实例?

private void btnSaveFile_Click(object sender, EventArgs e) { StreamWriter studentInfo = new StreamWriter(txtFirstName.Text); }

或者有没有办法让StreamWriter打印该类中的所有字段?我尝试重载该方法,但显然无法完成。

2 个答案:

答案 0 :(得分:1)

是的,如果您首先将其序列化为JSON或XML,请将其作为字符串...或最简单的方式...向您的班级添加ToString()方法:

    class Person
    {
            public string Name { get; set; }
            public int Age { get; set; }
            public Person (string name, int age) {
              this.Name = name;
              this.Age = age;
            }
            public override string ToString()
            {
                return "Person: " + Name + " " + Age;

            }

     }

然后编写Class实例将其写入文件:

private void btnSaveFile_Click(object sender, EventArgs e)
{
   string mydocpath = ""; // add your path here
   Person newPerson =  new Person ("David", 32);
   using (StreamWriter studentInfo = new StreamWriter(mydocpath + @"\Student.txt")) {
      studentInfo.WriteLine(newPerson.ToString());
   }
}

希望这有帮助

答案 1 :(得分:0)

您可以使用[Serializable]属性标记您的课程。然后,您可以使用BinaryFormatter将类写入流。如果数据是人类可读的,那对你来说并不重要。