StreamReader Class
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Implements a TextReader that reads characters from a byte stream in a particular encoding.
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) | 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) | Initializes a new instance of the StreamReader class for the specified file name, using the specified byte order mark detection option. |
![]() | StreamReader(String, Encoding) | 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) | 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) | 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. |
![]() | StreamReader(Stream, Encoding, Boolean, Int32, Boolean) | Initializes a new instance of the StreamReader class for the specified stream, using the specified character encoding, byte order mark detection option, buffer size, and a value that specifies whether to leave the stream open. |
| Name | Description | |
|---|---|---|
![]() | BaseStream | Returns the underlying stream. |
![]() | CurrentEncoding | Gets the current character encoding that the current StreamReader object is using. |
![]() | EndOfStream | Gets a value that indicates whether the current stream position is at the end of the stream. |
| Name | Description | |
|---|---|---|
![]() | Close | 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 | Returns the next available character but does not consume it. (Overrides TextReader::Peek().) |
![]() | Read() | Reads the next character from the input stream and advances the character position by one character. (Overrides TextReader::Read().) |
![]() | Read(array<Char>, Int32, Int32) | Reads a maximum of count characters from the current stream into buffer, beginning at index. (Overrides TextReader::Read(array<Char>, Int32, Int32).) |
![]() | ReadAsync | Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index. (Overrides TextReader::ReadAsync(array<Char>, Int32, Int32).) |
![]() | ReadBlock | Reads a specified maximum number of characters from the current stream and writes the data to a buffer, beginning at the specified index. (Overrides TextReader::ReadBlock(array<Char>, Int32, Int32).) |
![]() | ReadBlockAsync | Reads a specified maximum number of characters from the current stream asynchronously and writes the data to a buffer, beginning at the specified index. (Overrides TextReader::ReadBlockAsync(array<Char>, Int32, Int32).) |
![]() | ReadLine | Reads a line of characters from the current stream and returns the data as a string. (Overrides TextReader::ReadLine().) |
![]() | ReadLineAsync | Reads a line of characters asynchronously from the current stream and returns the data as a string. (Overrides TextReader::ReadLineAsync().) |
![]() | ReadToEnd | Reads the stream from the current position to the end of the stream. (Overrides TextReader::ReadToEnd().) |
![]() | ReadToEndAsync | Reads all characters from the current position to the end of the stream asynchronously and returns them as one string. (Overrides TextReader::ReadToEndAsync().) |
![]() | 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(array<Char>, Int32, Int32) and Write(array<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. 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 information on how to compile and run this example code, see Building examples that have static TextBlock controls for Windows Phone 8.





Note: