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