У меня нет опыта работы с Filestream StreamWriter, поэтому я не уверен, есть ли что-то очевидное, что мне не хватает или не понимаю.Filestream/Streamwriter неправильно присваивает значения
У меня есть метод, который использует атрибуты из его текущего класса и записывает их в строки внутри файла, но, похоже, просто записывает пустые значения в файл.
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 в прошлом.
EDIT:
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();
title является атрибутом класса. Он получает значение, присвоенное другим классом таким образом: public void setTitle (название строки) { this.title = название; } Может ли это быть проблемой? –
обновите вопрос с помощью кода, как вы назначаете значения, и где вы вызываете этот метод. – Damith
Вам не хватает 'using() {}' операторов. Исключения могут привести к утечке ресурсов. –