1

I want to delete in my .txt file - line, but rewriting is going incorrect. The lines with text are replaced, and sometimes they repeat. How can I clear opened .txt before rewriting to it?

FileStream fileStream = new FileStream(textBox3.Text,FileMode.OpenOrCreate,
        FileAccess.ReadWrite, FileShare.None);
        string line = null;
        int line_number = 0;
        int line_to_delete = 12;

        using (StreamReader reader = new StreamReader(fileStream))
        {
            using (StreamWriter writer = new StreamWriter(fileStream))
            {
                while ((line = reader.ReadLine()) != null)
                {
                    line_number++;

                    if (line_number == line_to_delete)
                        continue;

                    writer.WriteLine(line);
                }
            }
        }

Before I used the part of code below and everything was OK, but I would like to read and write to the same file.

using (StreamReader reader = new StreamReader(@"C:\Users\user\Desktop\my.txt"))
using (StreamWriter writer = new StreamWriter(@"C:\Users\user\Desktop\my2.txt")) 
Little Fox
  • 1,212
  • 13
  • 39

1 Answers1

3

Use FileMode.Truncate in your FileStream constructor. For example:

FileStream fileStream = new FileStream(textBox3.Text, FileMode.Truncate, FileAccess.ReadWrite, FileShare.None);
Pajdziu
  • 911
  • 1
  • 9
  • 22