0
0
CsharpHow-ToBeginner · 3 min read

How to Append to File in C# - Simple Guide

In C#, you can append text to a file using File.AppendAllText or by creating a StreamWriter with the append flag set to true. These methods add new content to the end of the file without overwriting existing data.
📐

Syntax

Here are two common ways to append text to a file in C#:

  • File.AppendAllText(string path, string contents): Appends the specified string to the file at path. Creates the file if it doesn't exist.
  • new StreamWriter(string path, bool append): Creates a writer that appends to the file when append is true.
csharp
File.AppendAllText(string path, string contents);

using (StreamWriter writer = new StreamWriter(path, true))
{
    writer.WriteLine(text);
}
💻

Example

This example shows how to append two lines of text to a file named log.txt. It uses both File.AppendAllText and StreamWriter to add text without deleting existing content.

csharp
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = "log.txt";

        // Append text using File.AppendAllText
        File.AppendAllText(filePath, "First line appended.\n");

        // Append text using StreamWriter
        using (StreamWriter writer = new StreamWriter(filePath, true))
        {
            writer.WriteLine("Second line appended.");
        }

        // Read and print the file content
        string content = File.ReadAllText(filePath);
        Console.WriteLine("File content after appending:\n" + content);
    }
}
Output
File content after appending: First line appended. Second line appended.
⚠️

Common Pitfalls

Common mistakes when appending to files include:

  • Not setting the append flag to true in StreamWriter, which overwrites the file instead of appending.
  • Forgetting to add newline characters (\n) when appending, causing text to run together.
  • Not handling exceptions that may occur if the file is locked or the path is invalid.
csharp
/* Wrong: Overwrites file because append is false (default) */
using (StreamWriter writer = new StreamWriter("log.txt"))
{
    writer.WriteLine("This will overwrite the file.");
}

/* Right: Append flag set to true */
using (StreamWriter writer = new StreamWriter("log.txt", true))
{
    writer.WriteLine("This will append to the file.");
}
📊

Quick Reference

Summary tips for appending to files in C#:

  • Use File.AppendAllText for simple text appending in one line.
  • Use StreamWriter with append: true for more control, like writing multiple lines.
  • Always handle exceptions for file access issues.
  • Remember to add newline characters if you want separate lines.

Key Takeaways

Use File.AppendAllText or StreamWriter with append=true to add text without erasing existing content.
Always set the append flag to true in StreamWriter to avoid overwriting files.
Add newline characters to keep appended text readable and separated.
Handle exceptions to manage file access errors gracefully.
File.AppendAllText is best for quick appends; StreamWriter is better for multiple writes.