StreamReader.Peek Method ()

 

Returns the next available character but does not consume it.

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

public override int Peek()

Return Value

Type: System.Int32

An 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 TextReader.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());
        }
    }
}

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show: