Create a Text File in C#

Create a Text File in C#

The following 4 methods can be used to create a text file in C#. In this article and code sample, we will learn how to use these methods to create text files.

  1. File.Create 
  2. File.CreateText 
  3. FileInfo.Create 
  4. FileInfo.CreateText

File.Create Method

The File.Create() method takes a file name with the full path as its first and required parameter and creates a file at the specified location. If same file already exists at the same location, this method overwrites the file.

The following code snippet creates a file Mahesh.txt in C:\Temp folder. If file already exists, the code will delete the existing file. The code writes two arrays of bytes to the file.

The Create method creates and returns a FileStream object that is responsible for reading and writing the specified file.

string fileName = @"C:\Temp\Mahesh.txt";    
    
try    
{    
    // Check if file already exists. If yes, delete it.     
    if (File.Exists(fileName))    
    {    
        File.Delete(fileName);    
    }    
    
    // Create a new file     
    using (FileStream fs = File.Create(fileName))     
    {    
        // Add some text to file    
        Byte[] title = new UTF8Encoding(true).GetBytes("New Text File");    
        fs.Write(title, 0, title.Length);    
        byte[] author = new UTF8Encoding(true).GetBytes("Mahesh Chand");    
        fs.Write(author, 0, author.Length);    
    }    
    
    // Open the stream and read it back.    
    using (StreamReader sr = File.OpenText(fileName))    
    {    
        string s = "";    
        while ((s = sr.ReadLine()) != null)    
        {    
            Console.WriteLine(s);    
        }    
    }    
}    
catch (Exception Ex)    
{    
    Console.WriteLine(Ex.ToString());    
}

The Create method has four overloaded forms provide options with a file buffer size, file options, and file security.

Create File with Buffer Size

File.Create(name of the file, number of bytes buffered for read and write to the file)

FileStream fs = File.Create(fileName, 1024);

Create File with File Options

The File.Create method takes third parameters as a FileOptions enumeration that can be used to specify advanced options for creating a FileStream object. 

FileStream fs = File.Create(fileName, 1024, FileOptions.WriteThrough);

Create File with File Security

The Create method also has an option to specify the file security options. The fourth parameter passed within the Create method of type FileSecurity object.

try    
{    
    string fileName = @"C:\Temp\Mahesh2.txt";    
    // Create File Security     
    FileSecurity fSecurity = new FileSecurity();     
    fSecurity.AddAccessRule(new FileSystemAccessRule(@"DomainName\AccountName", FileSystemRights.ReadData, AccessControlType.Allow));    
    
    using (FileStream fs = File.Create(fileName, 1024, FileOptions.WriteThrough, fSecurity))    
    {    
        // Add some text to file    
        Byte[] title = new UTF8Encoding(true).GetBytes("New Text File");    
        fs.Write(title, 0, title.Length);    
        byte[] author = new UTF8Encoding(true).GetBytes("Mahesh Chand");    
        fs.Write(author, 0, author.Length);    
    }    
    Console.WriteLine("Adding access control entry for " + fileName);       
    Console.WriteLine("Done.");    
}    
catch (Exception e)    
{    
    Console.WriteLine(e);    
}

File.CreateText Method

The File.CreateText method creates and opens a file for writing UTF-8 encoded text. If file already exists, this method opens the file. 

The following code snippet creates a file using the CreateText method that returns a StreamWriter object. The WriteLine method of SteamLine can be used to add line text to the object and writes to the file.

string fileName = @"C:\Temp\MaheshTX.txt";    
    
try    
{    
    // Check if file already exists. If yes, delete it.     
    if (File.Exists(fileName))    
    {    
        File.Delete(fileName);    
    }    
    
    // Create a new file     
    using (StreamWriter sw = File.CreateText(fileName))    
    {    
        sw.WriteLine("New file created: {0}", DateTime.Now.ToString());    
        sw.WriteLine("Author: Mahesh Chand");    
        sw.WriteLine("Add one more line ");    
        sw.WriteLine("Add one more line ");    
        sw.WriteLine("Done! ");    
    }    
    
    // Write file contents on console.     
    using (StreamReader sr = File.OpenText(fileName))    
    {    
        string s = "";    
        while ((s = sr.ReadLine()) != null)    
        {    
            Console.WriteLine(s);    
        }    
    }    
}    
catch (Exception Ex)    
{    
    Console.WriteLine(Ex.ToString());    
}

FileInfo.Create Method

The FileInfo.Create method creates a file.

The following code snippet creates a file using the Create method that returns a FileSteam object. The Write method of FileStream can be used to write text to the file.

string fileName = @"C:\Temp\MaheshTXFI.txt";    
FileInfo fi = new FileInfo(fileName);    
    
try    
{    
    // Check if file already exists. If yes, delete it.     
    if (fi.Exists)    
    {    
        fi.Delete();    
    }    
    
    // Create a new file     
    using (FileStream fs = fi.Create())    
    {    
        Byte[] txt = new UTF8Encoding(true).GetBytes("New file.");    
        fs.Write(txt, 0, txt.Length);    
        Byte[] author = new UTF8Encoding(true).GetBytes("Author Mahesh Chand");    
        fs.Write(author, 0, author.Length);    
    }    
    
    // Write file contents on console.     
    using (StreamReader sr = File.OpenText(fileName))    
    {    
        string s = "";    
        while ((s = sr.ReadLine()) != null)    
        {    
            Console.WriteLine(s);    
        }    
    }    
}    
catch (Exception Ex)    
{    
    Console.WriteLine(Ex.ToString());    
}

FileInfo.CreateText Method

The FileInfo.CreateText method creates and opens a file for writing UTF-8 encoded text. If file already exists, this method opens the file. 

The following code snippet creates a file using the CreateText method that returns a StreamWriter object. The WriteLine method of SteamLine can be used to add line text to the object and writes to the file. 

string fileName = @"C:\Temp\MaheshTXFITx.txt";    
FileInfo fi = new FileInfo(fileName);    
    
try    
{    
    // Check if file already exists. If yes, delete it.     
    if (fi.Exists)    
    {    
        fi.Delete();    
    }    
    
    // Create a new file     
    using (StreamWriter sw = fi.CreateText())    
    {    
        sw.WriteLine("New file created: {0}", DateTime.Now.ToString());    
        sw.WriteLine("Author: Mahesh Chand");    
        sw.WriteLine("Add one more line ");    
        sw.WriteLine("Add one more line ");    
        sw.WriteLine("Done! ");    
    }    
    
    // Write file contents on console.     
    using (StreamReader sr = File.OpenText(fileName))    
    {    
        string s = "";    
        while ((s = sr.ReadLine()) != null)    
        {    
            Console.WriteLine(s);    
        }    
    }    
}    
catch (Exception Ex)    
{    
    Console.WriteLine(Ex.ToString());    
}

Summary

In this article, I demonstrated several ways to create a file in C#.

Here is a recommended article: Use FileInfo class in C# to work with files


Similar Articles
Mindcracker
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.