I am working on a simple console application which writes into .txt files. I have few Streamwriters with append set to false:
StreamWriter j1 = new StreamWriter(@"jmeno1.txt", false);
StreamWriter j2 = new StreamWriter(@"jmeno2.txt", false);
StreamWriter s1 = new StreamWriter(@"skore1.txt", false);
StreamWriter s2 = new StreamWriter(@"skore2.txt", false);
StreamWriter l1 = new StreamWriter(@"legy1.txt", false);
StreamWriter l2 = new StreamWriter(@"legy2.txt", false);
First I write down the default values:
string jmeno1;
string jmeno2;
int legy1 = 0;
int legy2 = 0;
int skore1 = 501;
int skore2 = 501;
Console.WriteLine("První jméno?");
jmeno1 = Console.ReadLine();
Console.WriteLine("Druhé jméno?");
jmeno2 = Console.ReadLine();
j1.WriteLine(jmeno1);
j2.WriteLine(jmeno2);
s1.WriteLine(skore1.ToString());
s2.WriteLine(skore2.ToString());
l1.WriteLine(legy1.ToString());
l2.WriteLine(legy2.ToString());
j1.Flush();
j2.Flush();
s1.Flush();
s2.Flush();
l1.Flush();
l2.Flush();
Then after some user inputs I want to overwrite these files with new strings (using the same way as for the default ones). But the files aren't being overwritten, the text is only being appended. I find this really strange since the append is set to false. I've never experienced this before.
Here's the part of code where writing to files happens (sorry for the foreign language):
Console.WriteLine("\n" + jmeno1 + " hodil/a?");
skore1 = skore1 - int.Parse(Console.ReadLine());
if (skore1 == 0)
{
legy1++;
// writing to file
l1.WriteLine(legy1.ToString());
l1.Flush();
Console.WriteLine("\n" + jmeno1 + " zavřel/a!");
skore1 = 501;
skore2 = 501;
// writing to file
s1.WriteLine(skore1.ToString());
s2.WriteLine(skore2.ToString());
s1.Flush();
s2.Flush();
zacina = 2;
}
else
{
// writing to file
s1.WriteLine(skore1.ToString());
s1.Flush();
Console.WriteLine("\n" + jmeno2 + " hodil/a?");
skore2 = skore2 - int.Parse(Console.ReadLine());
if (skore2 == 0)
{
legy2++;
// writing to file
l2.WriteLine(legy2.ToString());
l2.Flush();
Console.WriteLine("\n" + jmeno2 + " zavřel/a!");
skore1 = 501;
skore2 = 501;
// writing to file
s1.WriteLine(skore1.ToString());
s2.WriteLine(skore2.ToString());
s1.Flush();
s2.Flush();
zacina = 2;
}
else
{
// writing to file
s2.WriteLine(skore2.ToString());
s2.Flush();
}
}
The file with the score then looks like this.
Thanks for any help.