StreamReader Class
Implements a TextReader that reads characters from a byte stream in a particular encoding.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
The StreamReader type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | StreamReader(Stream) | Initializes a new instance of the StreamReader class for the specified stream. |
![]() ![]() ![]() | StreamReader(String) | When it is called by trusted applications, initializes a new instance of the StreamReader class for the specified file name. |
![]() ![]() ![]() | StreamReader(Stream, Boolean) | Initializes a new instance of the StreamReader class for the specified stream, using the specified byte order mark detection option. |
![]() ![]() ![]() | StreamReader(Stream, Encoding) | Initializes a new instance of the StreamReader class for the specified stream, using the specified character encoding. |
![]() ![]() ![]() | StreamReader(String, Boolean) | When it is called by trusted applications, initializes a new instance of the StreamReader class for the specified file name, using the specified byte order mark detection option. |
![]() ![]() ![]() | StreamReader(String, Encoding) | When it is called by trusted applications, initializes a new instance of the StreamReader class for the specified file name, using the specified character encoding. |
![]() ![]() ![]() | StreamReader(Stream, Encoding, Boolean) | Initializes a new instance of the StreamReader class for the specified stream, using the specified character encoding and byte order mark detection option. |
![]() ![]() ![]() | StreamReader(String, Encoding, Boolean) | When it is called by trusted applications, initializes a new instance of the StreamReader class for the specified file name, using the specified character encoding and byte order mark detection option. |
![]() ![]() ![]() | StreamReader(Stream, Encoding, Boolean, Int32) | Initializes a new instance of the StreamReader class for the specified stream, using the specified character encoding, byte order mark detection option, and buffer size. |
![]() ![]() ![]() | StreamReader(String, Encoding, Boolean, Int32) | When it is called by trusted applications, initializes a new instance of the StreamReader class for the specified file name, using the specified character encoding, byte order mark detection option, and buffer size. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | BaseStream | When it is called by trusted applications, returns the underlying stream. |
![]() ![]() ![]() | CurrentEncoding | When it is called by trusted applications, gets the current character encoding that the current StreamReader object is using. |
![]() ![]() ![]() | EndOfStream | When it is called by trusted applications, gets a value that indicates whether the current stream position is at the end of the stream. |
| Name | Description | |
|---|---|---|
![]() ![]() ![]() | Close | When it is called by trusted applications, closes the StreamReader object and the underlying stream, and releases any system resources associated with the reader. (Overrides TextReader.Close().) |
![]() ![]() ![]() | DiscardBufferedData | Clears the internal buffer. |
![]() ![]() ![]() | Dispose() | Releases all resources used by the TextReader object. (Inherited from TextReader.) |
![]() ![]() ![]() | Dispose(Boolean) | Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources. (Overrides TextReader.Dispose(Boolean).) |
![]() ![]() ![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() ![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() ![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() ![]() ![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() ![]() ![]() | Peek | When it is called by trusted application, returns the next available character but does not consume it. (Overrides TextReader.Peek().) |
![]() ![]() ![]() | Read() | When it is called by trusted applications, reads the next character from the input stream and advances the character position by one character. (Overrides TextReader.Read().) |
![]() ![]() ![]() | Read(Char[], Int32, Int32) | When it is called by trusted applications, reads a maximum of count characters from the current stream into buffer, beginning at index. (Overrides TextReader.Read(Char[], Int32, Int32).) |
![]() ![]() ![]() | ReadBlock | (Overrides TextReader.ReadBlock(Char[], Int32, Int32).) In Silverlight for Windows Phone Windows Phone OS 7.1, this member is inherited from TextReader.ReadBlock(Char[], Int32, Int32). In XNA Framework Xbox 360, this member is inherited from TextReader.ReadBlock(Char[], Int32, Int32). |
![]() ![]() ![]() | ReadLine | When it is called by trusted applications, reads a line of characters from the current stream and returns the data as a string. (Overrides TextReader.ReadLine().) |
![]() ![]() ![]() | ReadToEnd | When it is called by trusted applications, reads the stream from the current position to the end of the stream. (Overrides TextReader.ReadToEnd().) |
![]() ![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
StreamReader is designed for character input in a particular encoding, whereas the Stream class is designed for byte input and output. Use StreamReader for reading lines of information from a standard text file.
StreamReader defaults to UTF-8 encoding unless specified otherwise, instead of defaulting to the ANSI code page for the current system. UTF-8 handles Unicode characters correctly and provides consistent results on localized versions of the operating system.
By default, a StreamReader is not thread safe.
The Read(Char[], Int32, Int32) and Write(Char[], Int32, Int32) method overloads read and write the number of characters specified by the count parameter.
Note: |
|---|
When reading from a Stream, it is more efficient to use a buffer that is the same size as the internal buffer of the stream. |
The following example uses a StreamReader object in a trusted application that runs outside the browser. The StreamReader object reads the contents of a file the user's My Documents folder, and displays the contents in a text box control (named inputData).
For an example of how to save the contents of a file, see the StreamWriter class.
For example code and information about how to create an application that runs outside the browser, see Out-of-Browser Support.
private void OpenFile_Click(object sender, RoutedEventArgs e) { if (Application.Current.HasElevatedPermissions) { // fileLoc is a global string variable. fileLoc = System.IO.Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments), "MyDoc.txt"); // Create the file if it does not exist. if (!File.Exists(fileLoc)) { using (StreamWriter swNew = new StreamWriter(fileLoc)) { swNew.WriteLine("Sample text"); } } // Display the contents in a TextBox. using (StreamReader sr = new StreamReader(fileLoc)) { inputData.Text = sr.ReadToEnd(); inputData.Visibility = Visibility.Visible; } } }
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

