System.IO.TextReader.ReadToEnd Method

Reads all characters from the current position to the end of the text reader and returns them as one string.

Syntax

public virtual string ReadToEnd ()

Returns

A string that contains all characters from the current position to the end of the text reader.

Exceptions

TypeReason
System.IO.IOException An I/O error occurred.
OutOfMemoryExceptionThere is insufficient memory to allocate a buffer for the returned string.
ArgumentOutOfRangeExceptionThe number of characters from the current position to the end of the underlying stream is larger than int.MaxValue.

Remarks

If the method throws an OutOfMemoryException exception, the reader's position in the underlying System.IO.Stream is advanced by the number of characters the method was able to read, but the characters that were already read into the internal TextReader.ReadToEnd buffer are discarded. Because the position of the reader in the stream cannot be changed, the characters that were already read are unrecoverable and can be accessed only by reinitializing the System.IO.TextReader. If the initial position within the stream is unknown or the stream does not support seeking, the underlying System.IO.Stream also needs to be reinitialized.

To avoid such a situation and produce robust code you should use the TextReader.Read method and store the read characters in a preallocated buffer.

The System.IO.TextReader class is an abstract class. Therefore, you do not instantiate it in your code. For an example of using the TextReader.ReadToEnd method, see the StreamReader.ReadToEnd method.

Requirements

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0