StreamReader.Peek Method
Returns the next available character but does not consume it.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Return Value
Type: System.Int32An integer representing the next character to be read, or -1 if there are no characters to be read or if the stream does not support seeking.
| Exception | Condition |
|---|---|
| IOException | An I/O error occurs. |
The Peek method returns an integer value in order to determine whether the end of the file, or another error has occurred. This allows a user to first check if the returned value is -1 before casting it to a Char type.
This method overrides Peek.
The current position of the StreamReader object is not changed by Peek.
The following code example reads lines from a file until the end of the file is reached.
using System; using System.IO; class Test { public static void Main() { string path = @"c:\temp\MyTest.txt"; try { if (File.Exists(path)) { File.Delete(path); } using (StreamWriter sw = new StreamWriter(path)) { sw.WriteLine("This"); sw.WriteLine("is some text"); sw.WriteLine("to test"); sw.WriteLine("Reading"); } using (StreamReader sr = new StreamReader(path)) { while (sr.Peek() > -1) { Console.WriteLine(sr.ReadLine()); } } } catch (Exception e) { Console.WriteLine("The process failed: {0}", e.ToString()); } } }
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.