TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C# Using TextWriter

This C# example program uses the TextWriter class. It writes an output file.

TextWriter creates text output. 

It is used to implement other file classes in the base class library. You can also use it to implement lower-level file IO logic in your higher-level classes.

Note: It's typically better to use StreamWriter in your C# programs. StreamWriter is simpler and easier to use.

Example. First here we look at the TextWriter class, which we instantiate from the result of the File.CreateText static method in the System.IO namespace. The TextWriter class provides useful methods for writing lines and text to a file.

The TextWriter class is easiest to use reliably when you wrap it in a using statement and a resource acquisition statement. This generates internal logic for handling unmanaged resources like file handles.

C# program that uses TextWriter

using System.IO;

class Program
{
    static void Main()
    {
	//
	// Create a new TextWriter in the resource acquisition statement.
	//
	using (TextWriter writer = File.CreateText("C:\\perl.txt"))
	{
	    //
	    // Write one line.
	    //
	    writer.WriteLine("First line");
	    //
	    // Write two strings.
	    //
	    writer.Write("A ");
	    writer.Write("B ");
	    //
	    // Write the default newline.
	    //
	    writer.Write(writer.NewLine);
	}
    }
}

File created by program
    (Located at C:\perl.txt)

First line
A B
 

The program uses the using-statement, a way to handle unmanaged file resources. The using-statement has a resource acquisition statement. It specifies a read-only variable that is only available in the enclosed statement list.

In the using statement block, the program uses the WriteLine instance method and the Write instance method on the TextWriter instance we allocated. WriteLine the parameter string to the file and automatically adds a newline sequence.

And: The Write method does not add the newline sequence. It just writes the character data specified.

Tip: If you are writing strings that already have line terminations, use the Write method.

The program also uses the NewLine instance property on the TextWriter class. You can assign or read this property. By default, it will be set to the platform's default newline sequence, which on Windows is "\r\n".

Environment.NewLine

StreamWriter. The StreamWriter class actually inherits from the TextWriter class in the base class library. The TextWriter class is an abstract base class, which means it provides functionality for StreamWriter.

Note: MSDN states that StreamWriter represents writing in a particular encoding.

Using StreamWriter

And: For this reason, unless you have specialized encoding requirements, StreamWriter is more appropriate because it manages the encoding.

Summary. We looked at the TextWriter class and related it to the StreamWriter class by noting that it is used as a base class. The TextWriter class is lower-level than StreamWriter because it does not handle encodings automatically.

But: It is still useful in many cases when you have specific encoding requirements or always want to use ASCII encoding.


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf