YouTip LogoYouTip

Csharp Text Files

[![Image 1: C# File Input and Output](#) C# File Input and Output](#) The **StreamReader** and **StreamWriter** classes are used for reading and writing data to text files. These classes inherit from the abstract base class Stream, which supports byte-level reading and writing of file streams. The **StreamReader** class inherits from the abstract base class TextReader and represents a reader that reads a sequence of characters. The following table lists some common **methods** in the **StreamReader** class: | No. | Method & Description | | --- | --- | | 1 | **public override void Close()** Closes the StreamReader object and the underlying stream, and releases any system resources associated with the reader. | | 2 | **public override int Peek()** Returns the next available character but does not consume it. | | 3 | **public override int Read()** Reads the next character from the input stream and advances the character position by one character. | For a complete list of methods, please visit the Microsoft C# documentation. The following example demonstrates reading a file named Jamaica.txt. The file is as follows: Down the way where the nights are gay And the sun shines daily on the mountain top I took a trip on a sailing ship And when I reached Jamaica I made a stop using System;using System.IO;namespace FileApplication{ class Program { static void Main(string[] args) { try { // Create an instance of StreamReader to read the file // The using statement also closes the StreamReader using (StreamReader sr = new StreamReader("c:/jamaica.txt", Encoding.UTF8)) { string line; // Read and display lines from the file until the end of the file while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } } catch (Exception e) { // Display the error message to the user Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } Console.ReadKey(); } }} When you compile and execute the above program, it will display the contents of the file. The **StreamWriter** class inherits from the abstract class TextWriter and represents a writer that writes a sequence of characters. The following table lists some common **methods** in the **StreamWriter** class: | No. | Method & Description | | --- | --- | | 1 | **public override void Close()** Closes the current StreamWriter object and the underlying stream. | | 2 | **public override void Flush()** Clears all buffers for the current writer and causes any buffered data to be written to the underlying stream. | | 3 | **public virtual void Write(bool value)** Writes the text representation of a Boolean value to the text string or stream. (Inherited from TextWriter.) | | 4 | **public override void Write( char value )** Writes a character to the stream. | | 5 | **public virtual void Write( decimal value )** Writes the text representation of a decimal value to the text string or stream. | | 6 | **public virtual void Write( double value )** Writes the text representation of an 8-byte floating-point value to the text string or stream. | | 7 | **public virtual void Write( int value )** Writes the text representation of a 4-byte signed integer to the text string or stream. | | 8 | **public override void Write( string value )** Writes a string to the stream. | | 9 | **public virtual void WriteLine()** Writes a line terminator to the text string or stream. | For a complete list of methods, please visit the Microsoft C# documentation. The following example demonstrates using the StreamWriter class to write text data to a file: using System;using System.IO;namespace FileApplication{ class Program { static void Main(string[] args) { string[] names = new string[] {"Zara Ali", "Nuha Ali"}; using (StreamWriter sw = new StreamWriter("names.txt")) { foreach (string s in names) { sw.WriteLine(s); } } // Read and display each line from the file string line = ""; using (StreamReader sr = new StreamReader("names.txt")) { while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } Console.ReadKey(); } }} When the above code is compiled and executed, it produces the following result: Zara AliNuha Ali [![Image 2: C# File Input and Output](#) C# File Input and Output](#)
← Csharp Binary FilesCsharp File Io β†’