Появляются ненужные значения при работе с файлами - C#

Узнай цену своей работы

Формулировка задачи:

Здраствуйте. Столкнулся с проблемой: нужно программно записать в файл рандомные числа от -100 до 100, потом все отрицательные числа возвести в квадрат, это получается, но когда открываю файл после проверки в нем помимо добавленных чисел оказываются еще и другие. То есть: запускаю, сначала 10 чисел, все хорошо; запускаю еще раз уже 11; и так растет и растет. Сделал проверку в консоли, чтобы показывал мне, какие числа получаются и какие заносятся, в консоле все ок, но в файле появляются новые. Посмотрел вдоль и поперек, в упор не вижу, в чем причина. Буду благодарен, за любую помощь.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace zadanie2
  8. {
  9. class Program
  10. {
  11. public static int intCount = 10;
  12. static void Main(string[] args)
  13. {
  14. Random rnd = new Random(); // ДЛЯ СОЗДАНИЯ РАНДОМНЫХ ЧИСЕЛ
  15. Console.WriteLine("Заполнить текстовый файл натуральными числами от -100 до 100? (Y/N)"); // ПРЕДЛАГАЕМ ПОЛЬЗОВАТЕЛЮ ЗАПОЛНИТЬ ФАЙЛ ЧИСЛАМИ
  16. if (askQuestion().ToLower() == "y")
  17. {
  18. FileStream fs = new FileStream("task3.txt", FileMode.OpenOrCreate); // СОЗДАЕМ ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
  19. StreamWriter streamWriter = new StreamWriter(fs, Encoding.GetEncoding(1251));
  20. for (int i = 0; i < intCount; i++)
  21. {
  22. int value = rnd.Next(-100, 101); // ВЫБИРАЕМ СЛУЧАЙНОЕ СЛОВО С ПОМОЩЬЮ МЕТОДА RANDOM
  23. if (i == intCount -1)
  24. {
  25. streamWriter.Write(value);
  26. }
  27. else
  28. {
  29. streamWriter.Write(value + " ");
  30. }
  31. Console.Write(value + " ");
  32. }
  33. streamWriter.Close();
  34. fs.Close();
  35. Console.WriteLine("Файл заполнен!");
  36. Console.WriteLine("Хотите ли возвесть в квадрат все отрицательные числа? (Y/N)");
  37. if (askQuestion().ToLower() == "y")
  38. {
  39. squareInt();
  40. programClose();
  41. }
  42. else
  43. {
  44. programClose();
  45. }
  46. }
  47. else
  48. {
  49. programClose();
  50. }
  51. }
  52. // МЕТОД ДЛЯ СОЗДАНИЯ ВОПРОСОВ
  53. public static string askQuestion()
  54. {
  55. string answer = Console.ReadLine();
  56. return answer;
  57. }
  58. // МЕТОД ДЛЯ ЗЫКРЫТИЯ ПРОГРАММЫ
  59. public static void programClose()
  60. {
  61. Console.WriteLine("Окончание работы программы... Нажмите любую клавишу.");
  62. Console.ReadKey();
  63. }
  64. // МЕТОД ДЛЯ ВОЗВЕДЕНИЯ В КВАДРАТ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ
  65. public static void squareInt()
  66. {
  67. int[] getArray = new int [intCount]; // МАССИВ КУДА БУДУТ ЗАНОСИТЬСЯ ДАННЫЕ ИЗ ФАЙЛА
  68. char div = ' ';
  69. FileStream fs2 = new FileStream("task3.txt", FileMode.Open, FileAccess.Read); // СОЗДАЕМ ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
  70. StreamReader FileTV2 = new StreamReader("task3.txt", Encoding.GetEncoding(1251));
  71. string line;
  72. while ((line = FileTV2.ReadLine()) != null) //пока поток не пуст
  73. {
  74. string[] s = line.Split(div);
  75. for (int i = 0; i < intCount; i++)
  76. {
  77. if (Convert.ToInt32(s[i]) < 0)
  78. {
  79. getArray[i] = Convert.ToInt32(s[i]) * Convert.ToInt32(s[i]);
  80. }
  81. else
  82. {
  83. getArray[i] = Convert.ToInt32(s[i]);
  84. }
  85. Console.Write(getArray[i] + " ");
  86. }
  87. }
  88. FileTV2.Close();
  89. fs2.Close();
  90. FileStream fs3 = new FileStream("task3.txt", FileMode.OpenOrCreate); // СОЗДАЕМ ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
  91. StreamWriter streamWriter = new StreamWriter(fs3, Encoding.GetEncoding(1251));
  92. for (int i = 0; i < intCount; i++)
  93. {
  94. if (i == intCount - 1)
  95. {
  96. streamWriter.Write(getArray[i]);
  97. }
  98. else
  99. {
  100. streamWriter.Write(getArray[i] + " ");
  101. }
  102. Console.WriteLine(" ->");
  103. Console.Write(getArray[i] + " ");
  104. }
  105. streamWriter.Close();
  106. fs3.Close();
  107. Console.WriteLine("Отрицательные числа заменены!");
  108. }
  109. }
  110. }

Решение задачи: «Появляются ненужные значения при работе с файлами»

textual
Листинг программы
  1. FileStream fs = new FileStream("task3.txt", FileMode.OpenOrCreate); // СОЗДАЕМ* ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы