Появляются ненужные значения при работе с файлами - 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.ТХТ
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д