Есть пара вещей, которые вы бы хотели изменить в своем коде.В частности:
- Вы открываете потоковую запись, записываете значение one и закрываете его.Если у вас уже нет списка значений, которые вы хотите записать, вы обычно открываете и закрываете средство записи потоков один раз и вызываете его несколько раз.
- Когда вы хотите добавить новую строку послезаписанное значение, вы используете
WriteLine
вместо Write
. - Когда вы записываете числовые значения в текстовый файл, они будут преобразованы в текст в зависимости от языка.Обратите внимание, что по умолчанию используется культура вашей системы.Если вы читаете файл с другого компьютера с другой культурой, файл может быть нечитаемым.Поэтому вы всегда должны предоставлять определенную культуру.Чтобы сделать это, проверьте метод
Convert.ToString
. - Вы должны заключить свой код, который пишет в потоковую запись, в блок
try
/ finally
, с методом StreamWriter.Close()
в finally
,В противном случае ваш файл не будет гарантированно закрыт в случае ошибки. - Не рекомендуется хранить денежную информацию (например, цены или остатки на счетах) как
float
.Вместо этого используйте decimal
, который оптимизирован для этой цели (в отличие от float
, который предназначен для научных расчетов).
Этот код должен дать вам преимущество в решении проблемы.Это зависит от вас, чтобы завершить это и организовать его в методы, классы и т. Д., В зависимости от ваших конкретных требований:
StreamWriter writer = new StreamWriter(@"C:\Users\ETN\source\repos\Apple-store\Apple-store\buy.txt");
try {
while (true) {
decimal price:
//Your code that determines the price goes here
string priceText = Convert.ToString(price, CultureInfo.InvariantCulture);
writer.WriteLine(priceText);
bool shouldContinue;
//Your code that determines whether there are more values to be written goes here
if (!shouldContinue) {
break;
}
}
writer.Flush();
}
finally {
writer.Close();
}