Export (0) Print
Expand All

Console.SetOut Method

Sets the Out property to the specified TextWriter object.

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

public static void SetOut (
	TextWriter newOut
)
public static void SetOut (
	TextWriter newOut
)
public static function SetOut (
	newOut : TextWriter
)

Parameters

newOut

A TextWriter stream that is the new standard output.

Exception typeCondition

ArgumentNullException

newOut is a null reference (Nothing in Visual Basic).

SecurityException

The caller does not have the required permission.

By default, the Out property is set to the standard output stream.

A StreamWriter that encapsulates a FileStream can be used to send output to a file. For example:

Console.WriteLine("Hello World");
  FileStream fs1 = new FileStream("Test.txt", FileMode.Create);
  // First, save the standard output.
  TextWriter tmp = Console.Out;
  StreamWriter sw1 = new StreamWriter(fs1);
  Console.SetOut(sw1);
  Console.WriteLine("Hello file");
  Console.SetOut(tmp);
  Console.WriteLine("Hello World");
    sw1.Close();

The following code example illustrates the use of the SetOut method.

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) {
            Console.WriteLine(usageText);
            return 1;
        }

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

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

        if (args.length < 2) {        
            Console.WriteLine(usageText);
            return ;
        }

        try {        
            writer = new StreamWriter(args[1]);
            Console.SetOut(writer);
            Console.SetIn(new StreamReader(args[0]));
        }
        catch (IOException e) {        
            TextWriter errorWriter = Console.get_Error();
            errorWriter.WriteLine(e.get_Message());
            errorWriter.WriteLine(usageText);
            return ;
        }

        String line;
        while (((line = Console.ReadLine()) != null)) {        
            String newLine = line.Replace("".PadRight(tabSize, ' '), "\t");
            Console.WriteLine(newLine);
        }

        writer.Close();

        // Recover the standard output stream so that a 
        // completion message can be displayed.
        StreamWriter standardOutput = new StreamWriter(Console.
            OpenStandardOutput());
        standardOutput.set_AutoFlush(true);
        Console.SetOut(standardOutput);
        Console.WriteLine("INSERTTABS has completed the processing of {0}.", 
            args[0]);    
    } //main
} //InsertTabs

const tabSize = 4;
const usageText = "Usage: INSERTTABS inputfile.txt outputfile.txt";

var writer : StreamWriter = null;
var args = Environment.GetCommandLineArgs();

if (args.Length != 3) {
    Console.WriteLine(usageText);
    Environment.Exit(1);
}

try {
    writer = new StreamWriter(args[2]);
    Console.SetOut(writer);
    Console.SetIn(new StreamReader(args[1]));
}
catch(e : IOException) {
    var errorWriter = Console.Error;
    errorWriter.WriteLine(e.Message);
    errorWriter.WriteLine(usageText);
    Environment.Exit(1);            
}
var line;
while ((line = Console.ReadLine()) != null) {
    var newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
    Console.WriteLine(newLine);
}
writer.Close();
// Recover the standard output stream so that a 
// completion message can be displayed.
var standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
Console.WriteLine("INSERTTABS has completed the processing of {0}.", args[0]);

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0

Community Additions

ADD
Show:
© 2014 Microsoft