Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Console.OpenStandardOutput Method

Definition

Namespace:
System
Assemblies:
netstandard.dll, System.Console.dll
Assembly:
System.Console.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Acquires the standard output stream.

Overloads

Name Description
OpenStandardOutput()

Acquires the standard output stream.

OpenStandardOutput(Int32)

Acquires the standard output stream, which is set to a specified buffer size.

OpenStandardOutput()

Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs

Acquires the standard output stream.

public:
 static System::IO::Stream ^ OpenStandardOutput();
public static System.IO.Stream OpenStandardOutput();
static member OpenStandardOutput : unit -> System.IO.Stream
Public Shared Function OpenStandardOutput () As Stream

Returns

The standard output stream.

Examples

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

 try
 {
 // Attempt to open output file.
 using (var writer = new StreamWriter(args[1]))
 {
 using (var reader = new StreamReader(args[0]))
 {
 // Redirect standard output from the console to the output file.
 Console.SetOut(writer);
 // Redirect standard input from the console to the input file.
 Console.SetIn(reader);
 string line;
 while ((line = Console.ReadLine()) != null)
 {
 string newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
 Console.WriteLine(newLine);
 }
 }
 }
 }
 catch(IOException e)
 {
 TextWriter errorWriter = Console.Error;
 errorWriter.WriteLine(e.Message);
 errorWriter.WriteLine(usageText);
 return 1;
 }

 // 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 {args[0]}.");
 return 0;
 }
}
open System
open System.IO

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

[<EntryPoint>]
let main args =
 if args.Length < 2 then
 Console.WriteLine usageText
 1
 else
 try
 // Attempt to open output file.
 use reader = new StreamReader(args[0])
 use writer = new StreamWriter(args[1])
 
 // Redirect standard output from the console to the output file.
 Console.SetOut writer
 
 // Redirect standard input from the console to the input file.
 Console.SetIn reader
 
 let mutable line = Console.ReadLine()
 while line <> null do
 let newLine = line.Replace(("").PadRight(tabSize, ' '), "\t")
 Console.WriteLine newLine
 line <- Console.ReadLine()

 // Recover the standard output stream so that a
 // completion message can be displayed.
 let standardOutput = new StreamWriter(Console.OpenStandardOutput())
 standardOutput.AutoFlush <- true
 Console.SetOut standardOutput
 Console.WriteLine $"INSERTTABS has completed the processing of {args[0]}."
 0

 with :? IOException as e -> 
 let errorWriter = Console.Error
 errorWriter.WriteLine e.Message
 errorWriter.WriteLine usageText
 1
Imports System.IO

Public Module InsertTabs
 Private Const tabSize As Integer = 4
 Private Const usageText As String = "Usage: INSERTTABS inputfile.txt outputfile.txt"
 
 Public Function Main(args As String()) As Integer
 If args.Length < 2 Then
 Console.WriteLine(usageText)
 Return 1
 End If
 
 Try
 ' Attempt to open output file.
 Using writer As New StreamWriter(args(1))
 Using reader As New StreamReader(args(0))
 ' Redirect standard output from the console to the output file.
 Console.SetOut(writer)
 ' Redirect standard input from the console to the input file.
 Console.SetIn(reader)
 Dim line As String = Console.ReadLine()
 While line IsNot Nothing
 Dim newLine As String = line.Replace("".PadRight(tabSize, " "c), ControlChars.Tab)
 Console.WriteLine(newLine)
 line = Console.ReadLine()
 End While
 End Using
 End Using
 Catch e As IOException
 Dim errorWriter As TextWriter = Console.Error
 errorWriter.WriteLine(e.Message)
 errorWriter.WriteLine(usageText)
 Return 1
 End Try

 ' Recover the standard output stream so that a 
 ' completion message can be displayed.
 Dim standardOutput As New StreamWriter(Console.OpenStandardOutput())
 standardOutput.AutoFlush = True
 Console.SetOut(standardOutput)
 Console.WriteLine($"INSERTTABS has completed the processing of {args(0)}.")
 Return 0
 End Function 
End Module

Remarks

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

See also

Applies to

OpenStandardOutput(Int32)

Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs

Acquires the standard output stream, which is set to a specified buffer size.

public:
 static System::IO::Stream ^ OpenStandardOutput(int bufferSize);
public static System.IO.Stream OpenStandardOutput(int bufferSize);
static member OpenStandardOutput : int -> System.IO.Stream
Public Shared Function OpenStandardOutput (bufferSize As Integer) As Stream

Parameters

bufferSize
Int32

This parameter has no effect, but its value must be greater than or equal to zero.

Returns

The standard output stream.

Exceptions

bufferSize is less than or equal to zero.

Examples

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

 try
 {
 // Attempt to open output file.
 using (var writer = new StreamWriter(args[1]))
 {
 using (var reader = new StreamReader(args[0]))
 {
 // Redirect standard output from the console to the output file.
 Console.SetOut(writer);
 // Redirect standard input from the console to the input file.
 Console.SetIn(reader);
 string line;
 while ((line = Console.ReadLine()) != null)
 {
 string newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
 Console.WriteLine(newLine);
 }
 }
 }
 }
 catch(IOException e)
 {
 TextWriter errorWriter = Console.Error;
 errorWriter.WriteLine(e.Message);
 errorWriter.WriteLine(usageText);
 return 1;
 }

 // 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 {args[0]}.");
 return 0;
 }
}
open System
open System.IO

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

[<EntryPoint>]
let main args =
 if args.Length < 2 then
 Console.WriteLine usageText
 1
 else
 try
 // Attempt to open output file.
 use reader = new StreamReader(args[0])
 use writer = new StreamWriter(args[1])
 
 // Redirect standard output from the console to the output file.
 Console.SetOut writer
 
 // Redirect standard input from the console to the input file.
 Console.SetIn reader
 
 let mutable line = Console.ReadLine()
 while line <> null do
 let newLine = line.Replace(("").PadRight(tabSize, ' '), "\t")
 Console.WriteLine newLine
 line <- Console.ReadLine()

 // Recover the standard output stream so that a
 // completion message can be displayed.
 let standardOutput = new StreamWriter(Console.OpenStandardOutput())
 standardOutput.AutoFlush <- true
 Console.SetOut standardOutput
 Console.WriteLine $"INSERTTABS has completed the processing of {args[0]}."
 0

 with :? IOException as e -> 
 let errorWriter = Console.Error
 errorWriter.WriteLine e.Message
 errorWriter.WriteLine usageText
 1
Imports System.IO

Public Module InsertTabs
 Private Const tabSize As Integer = 4
 Private Const usageText As String = "Usage: INSERTTABS inputfile.txt outputfile.txt"
 
 Public Function Main(args As String()) As Integer
 If args.Length < 2 Then
 Console.WriteLine(usageText)
 Return 1
 End If
 
 Try
 ' Attempt to open output file.
 Using writer As New StreamWriter(args(1))
 Using reader As New StreamReader(args(0))
 ' Redirect standard output from the console to the output file.
 Console.SetOut(writer)
 ' Redirect standard input from the console to the input file.
 Console.SetIn(reader)
 Dim line As String = Console.ReadLine()
 While line IsNot Nothing
 Dim newLine As String = line.Replace("".PadRight(tabSize, " "c), ControlChars.Tab)
 Console.WriteLine(newLine)
 line = Console.ReadLine()
 End While
 End Using
 End Using
 Catch e As IOException
 Dim errorWriter As TextWriter = Console.Error
 errorWriter.WriteLine(e.Message)
 errorWriter.WriteLine(usageText)
 Return 1
 End Try

 ' Recover the standard output stream so that a 
 ' completion message can be displayed.
 Dim standardOutput As New StreamWriter(Console.OpenStandardOutput())
 standardOutput.AutoFlush = True
 Console.SetOut(standardOutput)
 Console.WriteLine($"INSERTTABS has completed the processing of {args(0)}.")
 Return 0
 End Function 
End Module

Remarks

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

See also

Applies to


Feedback

Was this page helpful?