StreamReader Class

May 11, 2014

Implements a TextReader that reads characters from a byte stream in a particular encoding.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Class StreamReader _
	Inherits TextReader

The StreamReader type exposes the following members.

  NameDescription
Public methodStreamReader(Stream)Initializes a new instance of the StreamReader class for the specified stream.
Public methodStreamReader(String)Initializes a new instance of the StreamReader class for the specified file name.
Public methodStreamReader(Stream, Boolean)Initializes a new instance of the StreamReader class for the specified stream, using the specified byte order mark detection option.
Public methodStreamReader(Stream, Encoding)Initializes a new instance of the StreamReader class for the specified stream, using the specified character encoding.
Public methodStreamReader(String, Boolean)Initializes a new instance of the StreamReader class for the specified file name, using the specified byte order mark detection option.
Public methodStreamReader(String, Encoding)Initializes a new instance of the StreamReader class for the specified file name, using the specified character encoding.
Public methodStreamReader(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.
Public methodStreamReader(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.
Public methodStreamReader(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.
Public methodStreamReader(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.
Public methodStreamReader(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.
Top

  NameDescription
Public propertyBaseStreamReturns the underlying stream.
Public propertyCurrentEncodingGets the current character encoding that the current StreamReader object is using.
Public propertyEndOfStreamGets a value that indicates whether the current stream position is at the end of the stream.
Top

  NameDescription
Public methodCloseCloses the StreamReader object and the underlying stream, and releases any system resources associated with the reader. (Overrides TextReader.Close.)
Public methodDiscardBufferedDataClears the internal buffer.
Public methodDisposeReleases all resources used by the TextReader object. (Inherited from TextReader.)
Protected methodDispose(Boolean)Closes the underlying stream, releases the unmanaged resources used by the StreamReader, and optionally releases the managed resources. (Overrides TextReader.Dispose(Boolean).)
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodPeekReturns the next available character but does not consume it. (Overrides TextReader.Peek.)
Public methodReadReads the next character from the input stream and advances the character position by one character. (Overrides TextReader.Read.)
Public methodRead(Char(), Int32, Int32)Reads a maximum of count characters from the current stream into buffer, beginning at index. (Overrides TextReader.Read(Char(), Int32, Int32).)
Public methodReadAsyncReads 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(Char(), Int32, Int32).)
Public methodReadBlockReads 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(Char(), Int32, Int32).)
Public methodReadBlockAsyncReads 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(Char(), Int32, Int32).)
Public methodReadLineReads a line of characters from the current stream and returns the data as a string. (Overrides TextReader.ReadLine.)
Public methodReadLineAsyncReads a line of characters asynchronously from the current stream and returns the data as a string. (Overrides TextReader.ReadLineAsync.)
Public methodReadToEndReads the stream from the current position to the end of the stream. (Overrides TextReader.ReadToEnd.)
Public methodReadToEndAsyncReads all characters from the current position to the end of the stream asynchronously and returns them as one string. (Overrides TextReader.ReadToEndAsync.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Public fieldStatic memberNullA StreamReader object around an empty stream.
Top

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.

NoteNote:

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.


Private Sub OpenFile_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)

	
		' fileLoc is a global string variable.
		fileLoc = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "MyDoc.txt")

		' Create the file if it does not exist.
		If Not File.Exists(fileLoc) Then
			Using swNew As New StreamWriter(fileLoc)
				swNew.WriteLine("Sample text")
			End Using
		End If

		' Display the contents in a TextBox.
		Using sr As New StreamReader(fileLoc)
			inputData.Text = sr.ReadToEnd()
			inputData.Visibility = Visibility.Visible
		End Using
End Sub


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Show:
© 2014 Microsoft