次の方法で共有


Console.Out プロパティ

標準出力ストリームを取得します。

Public Shared ReadOnly Property Out As TextWriter
[C#]
public static TextWriter Out {get;}
[C++]
public: __property static TextWriter* get_Out();
[JScript]
public static function get Out() : TextWriter;

プロパティ値

標準出力ストリームを表す TextWriter オブジェクト。

解説

既定では、このプロパティは標準出力ストリームに設定されます。このプロパティは、 SetOut メソッドで別のストリームに設定できます。

使用例

Out の使用方法については、次のコード例を参照してください。

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

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard

参照

Console クラス | Console メンバ | System 名前空間 | Error | In | SetOut