TextReader.ReadLine Method
Reads a line of characters from the text reader and returns the data as a string.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Return Value
Type: System.StringThe next line from the reader, or null if all characters have been read.
| Exception | Condition |
|---|---|
| IOException | An I/O error occurs. |
| OutOfMemoryException | There is insufficient memory to allocate a buffer for the returned string. |
| ObjectDisposedException | The TextReader is closed. |
| ArgumentOutOfRangeException | The number of characters in the next line is larger than MaxValue |
A line is defined as a sequence of characters followed by a carriage return (0x000d), a line feed (0x000a), a carriage return followed by a line feed, Environment.NewLine, or the end-of-stream marker. The string that is returned does not contain the terminating carriage return or line feed. The return value is null if the end of the input stream has been reached.
If the method throws an OutOfMemoryException exception, the reader's position in the underlying Stream is advanced by the number of characters the method was able to read, but the characters that were already read into the internal ReadLine 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 TextReader object. If the initial position within the stream is unknown or the stream does not support seeking, the underlying Stream also needs to be reinitialized.
To avoid such a situation and produce robust code you should use the Read method and store the read characters in a preallocated buffer.
The TextReader class is an abstract class. Therefore, you do instantiate it in your code. For an example of using the ReadLine method, see the StreamReader.ReadLine method.
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.