OpenStandardOutput Method
Collapse the table of content
Expand the table of content

Console.OpenStandardOutput Method ()


Acquires the standard output stream.

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

[HostProtectionAttribute(SecurityAction.LinkDemand, UI = true)]
public static Stream OpenStandardOutput()

Return Value

Type: System.IO.Stream

The standard output stream.

This method can be used to reacquire the standard output stream after it has been changed by the SetOut method.

The following example illustrates the use of the OpenStandardOutput method. It replaces four consecutive space characters in a string with a tab character. To run it, you must supply two command-line arguments. The first is the name of an existing text file to redirect the standard input stream to. The second is the name of a file to redirect the standard output stream to. This file need not exist. If it does, its contents will be overwritten.

using System;
using System.IO;

public class InsertTabs {
    private const int tabSize = 4;
    private const string usageText = "Usage: INSERTTABS inputfile.txt outputfile.txt";
    public static int Main(string[] args) {
        StreamWriter writer = null;

        if (args.Length < 2) {
            return 1;

        try {
            // Attempt to open output file.
            writer = new StreamWriter(args[1]);
            // Redirect standard output from the console to the output file.
            // Redirect standard input from the console to the input file.
            Console.SetIn(new StreamReader(args[0]));
        catch(IOException e) {
            TextWriter errorWriter = Console.Error;
            return 1;            
        string line;
        while ((line = Console.ReadLine()) != null) {
            string newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
        // Recover the standard output stream so that a 
        // completion message can be displayed.
        StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
        standardOutput.AutoFlush = true;
        Console.WriteLine("INSERTTABS has completed the processing of {0}.", args[0]);
        return 0;

.NET Framework
Available since 1.1
Return to top
© 2015 Microsoft