gpt4 book ai didi

c# - 如何使用 StreamWriter 写入文件?

转载 作者:太空狗 更新时间:2023-10-29 20:51:17 25 4
gpt4 key购买 nike

在我的 Wpf 应用程序中,我使用了一个类 Person(这是一个基类),它包含一个虚拟方法 SaveData() 和其他从 Person 继承的类 Client。如何重写方法 SaveData() 并保留来自 base 的数据?

类人

public virtual void SaveData()
{
string arqName = string.Format("Person{0}" + ".txt", Id);
StreamWriter file = new StreamWriter(arqNome);
file.WriteLine("ID: " + Id);
file.WriteLine("DOB: " + dOB);
file.WriteLine("Name: " + name);
file.WriteLine("Age: " + age);
file.Flush();
file.Close();
}

类客户端

public override void SaveData()
{
base.SaveData();
string arqName = string.Format("Person{0}" + ".txt", Id);
StreamWriter file = new StreamWriter(arqNome);
file.WriteLine("Cod: " + cod);
file.WriteLine("Credits: " + credits);
file.Flush();
file.Close();
}

Client 中的覆盖方法确实覆盖了其他数据,如姓名、年龄、出生日期...我需要在同一个文件中保留这两个数据。

最佳答案

StreamWriter 是流装饰器,因此您最好实例化 FileStream 并将其传递给 StreamWriter 构造函数。因此,您可以自定义它。追加模式打开文件并将指针移动到文件末尾,因此您编写的下一个内容将被追加。并使用 using 指令而不是显式调用 Close():
人类 SaveData():

using (var fileStream = new FileStream(String.Format("Person{0}.txt", Id), FileMode.OpenOrCreate))
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("ID: " + Id);
streamWriter.WriteLine("DOB: " + dOB);
streamWriter.WriteLine("Name: " + name);
streamWriter.WriteLine("Age: " + age);
}

客户端类 SaveData():

base.SaveData();
using (var fileStream = new FileStream(String.Format("Person{0}.txt", Id), FileMode.Append))
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("Cod: " + cod);
streamWriter.WriteLine("Credits: " + credits);
}

关于c# - 如何使用 StreamWriter 写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35021125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com