Появляются ненужные значения при работе с файлами - C#
Формулировка задачи:
Здраствуйте.
Столкнулся с проблемой: нужно программно записать в файл рандомные числа от -100 до 100, потом все отрицательные числа возвести в квадрат, это получается, но когда открываю файл после проверки в нем помимо добавленных чисел оказываются еще и другие.
То есть: запускаю, сначала 10 чисел, все хорошо; запускаю еще раз уже 11; и так растет и растет.
Сделал проверку в консоли, чтобы показывал мне, какие числа получаются и какие заносятся, в консоле все ок, но в файле появляются новые. Посмотрел вдоль и поперек, в упор не вижу, в чем причина. Буду благодарен, за любую помощь.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace zadanie2
- {
- class Program
- {
- public static int intCount = 10;
- static void Main(string[] args)
- {
- Random rnd = new Random(); // ДЛЯ СОЗДАНИЯ РАНДОМНЫХ ЧИСЕЛ
- Console.WriteLine("Заполнить текстовый файл натуральными числами от -100 до 100? (Y/N)"); // ПРЕДЛАГАЕМ ПОЛЬЗОВАТЕЛЮ ЗАПОЛНИТЬ ФАЙЛ ЧИСЛАМИ
- if (askQuestion().ToLower() == "y")
- {
- FileStream fs = new FileStream("task3.txt", FileMode.OpenOrCreate); // СОЗДАЕМ ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
- StreamWriter streamWriter = new StreamWriter(fs, Encoding.GetEncoding(1251));
- for (int i = 0; i < intCount; i++)
- {
- int value = rnd.Next(-100, 101); // ВЫБИРАЕМ СЛУЧАЙНОЕ СЛОВО С ПОМОЩЬЮ МЕТОДА RANDOM
- if (i == intCount -1)
- {
- streamWriter.Write(value);
- }
- else
- {
- streamWriter.Write(value + " ");
- }
- Console.Write(value + " ");
- }
- streamWriter.Close();
- fs.Close();
- Console.WriteLine("Файл заполнен!");
- Console.WriteLine("Хотите ли возвесть в квадрат все отрицательные числа? (Y/N)");
- if (askQuestion().ToLower() == "y")
- {
- squareInt();
- programClose();
- }
- else
- {
- programClose();
- }
- }
- else
- {
- programClose();
- }
- }
- // МЕТОД ДЛЯ СОЗДАНИЯ ВОПРОСОВ
- public static string askQuestion()
- {
- string answer = Console.ReadLine();
- return answer;
- }
- // МЕТОД ДЛЯ ЗЫКРЫТИЯ ПРОГРАММЫ
- public static void programClose()
- {
- Console.WriteLine("Окончание работы программы... Нажмите любую клавишу.");
- Console.ReadKey();
- }
- // МЕТОД ДЛЯ ВОЗВЕДЕНИЯ В КВАДРАТ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ
- public static void squareInt()
- {
- int[] getArray = new int [intCount]; // МАССИВ КУДА БУДУТ ЗАНОСИТЬСЯ ДАННЫЕ ИЗ ФАЙЛА
- char div = ' ';
- FileStream fs2 = new FileStream("task3.txt", FileMode.Open, FileAccess.Read); // СОЗДАЕМ ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
- StreamReader FileTV2 = new StreamReader("task3.txt", Encoding.GetEncoding(1251));
- string line;
- while ((line = FileTV2.ReadLine()) != null) //пока поток не пуст
- {
- string[] s = line.Split(div);
- for (int i = 0; i < intCount; i++)
- {
- if (Convert.ToInt32(s[i]) < 0)
- {
- getArray[i] = Convert.ToInt32(s[i]) * Convert.ToInt32(s[i]);
- }
- else
- {
- getArray[i] = Convert.ToInt32(s[i]);
- }
- Console.Write(getArray[i] + " ");
- }
- }
- FileTV2.Close();
- fs2.Close();
- FileStream fs3 = new FileStream("task3.txt", FileMode.OpenOrCreate); // СОЗДАЕМ ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
- StreamWriter streamWriter = new StreamWriter(fs3, Encoding.GetEncoding(1251));
- for (int i = 0; i < intCount; i++)
- {
- if (i == intCount - 1)
- {
- streamWriter.Write(getArray[i]);
- }
- else
- {
- streamWriter.Write(getArray[i] + " ");
- }
- Console.WriteLine(" ->");
- Console.Write(getArray[i] + " ");
- }
- streamWriter.Close();
- fs3.Close();
- Console.WriteLine("Отрицательные числа заменены!");
- }
- }
- }
Решение задачи: «Появляются ненужные значения при работе с файлами»
textual
Листинг программы
- FileStream fs = new FileStream("task3.txt", FileMode.OpenOrCreate); // СОЗДАЕМ* ИЛИ ОТКРЫВАЕМ ФАЙЛ ТАСК3.ТХТ
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д