FileStream.WriteLine() is not writing to file

c#, file-io, stream, text-files

Solution

Adding a call to `Flush` the stream works. This is because you are wrapping the `FileStream`. `StreamWriter` will write to the `FileStream`, but you need to indicate when to send the `Stream` to the actual file. Also, you can exchange your `try finally` with a `using`:

try
{
    using (var fs = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+"/textme.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
    {
        using (var fw = new StreamWriter(fs))
        {
            fw.Write("sadadasdsadsadsadas");

            for (int i = 0; i < AnimalShelter.AnimalList.Count; i++)
            {
                fw.WriteLine("<chipNr>" + AnimalShelter.AnimalList[i].ChipRegistrationNumber + "<chipNr>");
                Console.WriteLine("<chipNr>" + AnimalShelter.AnimalList[i].ChipRegistrationNumber + "<chipNr>");

            }
            fw.Flush(); // Added
        }
    }
}
catch(IOException)
{
    MessageBox.Show("ERROR THROWN");
}

Problem

I am trying to make a simple software which stores data in a TXT log file. This is my code ``` FileStream fs = null; StreamWriter fw = null; try { fs= new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)+"/textme.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite); fw = new StreamWriter(fs); fw.Write("sadadasdsadsadsadas"); for (int i = 0; i < AnimalShelter.AnimalList.Count; i++) { fw.WriteLine("<chipNr>" + AnimalShelter.AnimalList[i].ChipRegistrationNumber + "<chipNr>"); Console.WriteLine("<chipNr>" + AnimalShelter.AnimalList[i].ChipRegistrationNumber + "<chipNr>"); } } catch(IOException) { MessageBox.Show("ERROR THROWN"); } finally { if (fs!= null) fs.Close(); // if (fw != null) fw.Close(); } ``` What I achieved is: the file gets created, but nothing gets written in it. I checked a lot of posts but I could not find any particular help.

Original source