Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
SetIn Method

Console.SetIn Method

Sets the In property to the specified TextReader.

[Visual Basic]
Public Shared Sub SetIn( _
   ByVal newIn As TextReader _
)
[C#]
public static void SetIn(
 TextReader newIn
);
[C++]
public: static void SetIn(
 TextReader* newIn
);
[JScript]
public static function SetIn(
   newIn : TextReader
);

Parameters

newIn
A TextReader stream that is the new standard input.

Exceptions

Exception Type Condition
ArgumentNullException newIn is a null reference (Nothing in Visual Basic).
SecurityException The caller does not have the required permission.

Remarks

By default, the In property is set to the standard input stream.

A StreamReader that encapsulates a FileStream can be used to receive input from a file.

Example

The following code sample illustrates the use of SetIn:

[Visual Basic] 
Public Class InsertTabs
   Private Const tabSize As Integer = 4
   Private Const usageText As String = "Usage: INSERTTABS inputfile.txt outputfile.txt"
   
   'Entry point which delegates to C-style main Private Function
   Public Overloads Shared Sub Main()
      System.Environment.ExitCode = Main(System.Environment.GetCommandLineArgs())
   End Sub
   
   Overloads Public Shared Function Main(args() As String) As Integer
      Dim writer As StreamWriter = Nothing
      
      If args.Length < 3 Then
         Console.WriteLine(usageText)
         Return 1
      End If
      
      Try
         writer = New StreamWriter(args(2))
         Console.SetOut(writer)
         Console.SetIn(New StreamReader(args(1)))
      Catch e As IOException
         Dim errorWriter As TextWriter = Console.Error
         errorWriter.WriteLine(e.Message)
         errorWriter.WriteLine(usageText)
         Return 1
      End Try
      Dim line As String
      line = Console.ReadLine()
      While Not line Is Nothing
         Dim newLine As String = line.Replace("".PadRight(tabSize, " "c), ControlChars.Tab)
         Console.WriteLine(newLine)
         line = Console.ReadLine()
      End While
      writer.Close()
      ' 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 {0}.", args(0))
      Return 0
   End Function 'Main
End Class 'InsertTabs

[C#] 
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;
    }
}

[C++] 
int main() {
    String* args[] = Environment::GetCommandLineArgs();
    const int tabSize = 4;
    String* usageText = S"Usage: INSERTTABS inputfile.txt outputfile.txt";

    StreamWriter* writer = 0;

    if (args->Length < 3) {
        Console::WriteLine(usageText);
        return 1;
    }

    try {
        writer = new StreamWriter(args[2]);
        Console::SetOut(writer);
        Console::SetIn(new StreamReader(args[1]));
    }
    catch(IOException* e) {
        TextWriter* errorWriter = Console::Error;
        errorWriter->WriteLine(e->Message);
        errorWriter->WriteLine(usageText);
        return 1;            
    }
    String* line;
    while ((line = Console::ReadLine()) != 0) {
        String* newLine = line->Replace((S"")->PadRight(tabSize, ' '), S"\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(S"INSERTTABS has completed the processing of {0}.", args[1]);
    return 0;
}

[JScript] 
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]);

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, Common Language Infrastructure (CLI) Standard

.NET Framework Security: 

See Also

Console Class | Console Members | System Namespace | TextReader | In

Show:
© 2015 Microsoft