Updated April 4, 2023
Introduction to C# StringWriter
The StringWriter class in C# is derived from TextWriter subclass and strings can be manipulated using the StringWriter class and this StringWriter class is used to write to a StringBuilder class which belongs to System. Text namespace and the strings can be built efficiently using this StringBuilder class because strings are immutable in C# and Write and WriteLine methods are provided by StringWriter to be able to write into the object of StringBuilder and write to a string can be done in a synchronous of asynchronous manner and StringBuilder class stores the information written by StringWriter class.
Syntax:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class StringWriter : TextWriter
Working & Constructors of C# StringWriter
In order to understand the working of StringWriter class in C#, we need to understand the constructors of the StringWriter class, properties of StringWriter class, and methods of StringWriter class.
- StringWriter(): A new instance of the StringWriter class is initialized using StringWriter() method.
- StringWriter(IFormatProvider): A new instance of the StringWriter class is initialized using (StringWriter(IFormatProvider) method with format control specified as a parameter.
- StringWriter(StringBuilder): A new instance of the StringWriter class is initialized using the StringWriter(IFormatProvider) method with format control specified as a parameter.
- StringWriter(StringBuilder,?IFormatProvider): A new instance of the StringWriter class is initialized to write to the StringBuilder specified as the first parameter and has the format provider specified as the second parameter.
Properties of C# StringWriter Class
There are several properties of StringWriter class. They are explained as follows:
- Encoding: Encoding the property of StringWriter class in C# is used to get the encoding into which we write the output.
- FormatProvider: FormatProvider property of StringWriter class in C# is used to get the object which performs controlling of format.
- NewLine: NewLine property of StringWriter class in C# is used to get or set the string of line terminator and this string of line terminator is used by the current TextWriter.
Methods of C# StringWriter Class
There are several methods of the StringWriter class. They are explained as follows:
1. Close(): The StringWriter and the stream can be closed using Close() method.
2. Dispose(): All the resources used by the object of TextWriter can be released using dispose() method.
3. Equals(Object): Equals(Object) method is used to determine is the specified object is equal to the current object or not.
4. Finalize(): An object can free the resources occupied by itself and perform other operations of cleanup using Finalize() method.
5. GetHashCode(): GetHashCode() method can be used as the hash function by default.
6. GetStringBuilder(): The underlying StringBuilder is returned using GetStringBuilder() method.
7. ToString(): A string consisting of characters is returned to the StringWriter using the ToString() method.
8. WriteAsync(String): A string is written to the string specified as parameter asynchronously using WriteAsync(String) method.
9. Write(Boolean): The Boolean value specified as a parameter is represented in the form of text and is written to the string using the Write(Boolean) method.
10. Write(String): A string is written to the current string specified as a parameter using the Write(String) method.
11. WriteLine(String): A string that is followed by a line terminator is written to the current string specified as a parameter using the WriteLine(String) method.
12. WriteLineAsync(): A string that is followed by a line terminator is written to the current string specified as a parameter asynchronously using WriteLineAsync(String) method.
Examples to Implement of C# StringWriter
Below are the examples of C# StringReader class:
Example #1
Code :
using System
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Program
{
class Check
{
//calling the main method
static void Main(string[] args)
{
//define a string to hold the path of the file containing data
String str = @"D:\Ex.txt";
//create an instance of the stream writer class and pass the string containing the path of the file to appendtext() method.
using (StreamWriter sw = File.AppendText(str))
{
//using the instance of the stringwriter class, write the data to the file
sw.WriteLine("Welcome to StringWriter class");
sw.Close();
//using the string containing the path of the file, the contents of the file are read
Console.WriteLine(File.ReadAllText(str));
}
Console.ReadKey();
}
}
}
Output:
In the above program, a namespace called the program is declared. Then the main method is called. Then a string is declared which holds the path of the file in which the data will be written. Then an instance of the StringWriter method is created which is assigned to the appendtext() method to which the string containing the path of the file is passed as a parameter. Using the instance of the StringWriter class that was just created, data is written to the file Ex.txt. Here the data written is “Welcome to StringWriter class.” Then the instance of the StringWriter class is closed using the Close() method. Then using the string containing the path of the file, the contents of the file are read and the same is displayed in the output.
Example #2
C# program to demonstrate usage of WriteLine() method of StringWriter class.
Code :
using System;
using System.IO;
using System.Text;
namespace Program
{
class Check
{
//Main method is called
static void Main(string[] args)
{
//define a string to hold the data to be displayed
string str = "Hello, Welcome to the StringWriter class \n" +
"This tutorial is for learning \n" +
"Learning is fun";
// An instance of the string builder class is created
StringBuilder build = new StringBuilder();
// an instance of the stringwriter class is created and the instance of the stringbuilder class is passed as a parameter to stringwriter class
StringWriter write = new StringWriter(build);
// data is written using string writer writeline() method
write.WriteLine(str);
write.Flush();
// the instance of the stringwriter is closed
write.Close();
// an instance of stringreader class is created to which the instance of stringbuilder class is passed as a parameter
StringReader read = new StringReader(build.ToString());
while (read.Peek() > -1)
{
Console.WriteLine(read.ReadLine());
}
}
}
}
Output:
Conclusion
In this tutorial, we understand the concept of StringWriter class in C# through definition, constructors of StringWriter class, properties of StringWriter class, and methods of StringWriter class, working of StringWriter class through programming examples and their outputs demonstrating the methods of StringWriter class.
Recommended Articles
This is a guide to C# StringWriter. Here we discuss a brief overview on C# StringWriter Class and its working along with different Examples and Code Implementation. You can also go through our other suggested articles to learn more –