Появляются ненужные значения при работе с файлами - 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.ТХТ

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


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

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

12   голосов , оценка 3.667 из 5
Похожие ответы