文件流/流编写器未正确分配值

本文关键字:分配 文件 | 更新日期: 2023-09-27 18:31:30

我没有使用StreamWriter的Filestream的经验,所以我不确定是否有明显的东西是我遗漏或不理解的。

我有一个方法使用其当前类中的属性,并将它们写入文件中的行,但它似乎只是将空白值写入文件。

public void FileWrite()
{
    FileStream fs = new FileStream("test.txt", FileMode.Append, FileAccess.Write);
    StreamWriter sw = new StreamWriter(fs);
    sw.WriteLine("Title = " + title);
    sw.WriteLine("Name = " + fName);
    sw.WriteLine("Last name = " + lName);
    sw.WriteLine("Gender = " + gender);
    sw.WriteLine("Medicare no = " + medicareNo);
    sw.WriteLine("Height = " + height);
    sw.WriteLine("Weight = " + weight);
    sw.WriteLine("Age = " + age);
    sw.WriteLine("Daily Recommended calories = " + cal);
    sw.WriteLine("Ideal Weight = " + idealWeight);
    sw.Flush();
    sw.Close();
    fs.Close();
    Readfile();
}

任何帮助将不胜感激,因为我过去没有使用过Filestream或StreamWriter。

编辑:

public class PatientDetails
{
    public void ValuePass()
    {
        FileHandler file = new FileHandler();
        file.setTitle(this.title);
        file.setName(this.fName, this.lName);
        file.setMedicare(this.medicareNo);
        file.setGender(this.gender);
        file.setMeasurements(this.weight, this.height, this.age);
        file.setCalcs(this.cal, this.idealWeight);
        Console.WriteLine(this.fName + this.lName);
    }
}

这就是从不同类中传递值的方式。

这些值是从用户输入中获得的:

do
{
    Console.WriteLine("'nPlease enter the Title");
    this.title = Console.ReadLine();

文件流/流编写器未正确分配值

你可以执行以下操作

FileHandler fh = new FileHandler();
fh.setTitle("New Title"); // set all the values.....
fh.FileWrite();

您在FileWrite()函数中的代码很好且正确。您应该首先检查 PatientDetail 类的属性是否有值。如果是这样,则必须按如下方式实现file.setTitle()

file.setTitle(string text)
{
title = text; //title is the attribute of `FileHanlder` class 
}

另外,请在ValuePass()函数中调用file.FileWrite()