Console.SetOut(TextWriter) Console.SetOut(TextWriter) Console.SetOut(TextWriter) Console.SetOut(TextWriter) Method

定義

Out プロパティを TextWriter オブジェクトをターゲットとするように設定します。Sets the Out property to target the TextWriter object.

public:
 static void SetOut(System::IO::TextWriter ^ newOut);
public static void SetOut (System.IO.TextWriter newOut);
static member SetOut : System.IO.TextWriter -> unit
Public Shared Sub SetOut (newOut As TextWriter)

パラメーター

newOut
TextWriter TextWriter TextWriter TextWriter

新しい標準出力として使用されるテキスト ライター。A text writer to be used as the new standard output.

例外

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

SetOut メソッドの使用例を次に示します。The following example illustrates the use of the SetOut method. これにより、文字列内の 4 個の連続する空白文字がタブ文字に置き換えられます。It replaces four consecutive space characters in a string with a tab character. これを実行するには、2つのコマンドライン引数を指定する必要があります。To run it, you must supply two command line arguments. 1 つ目は、標準入力ストリームのリダイレクト先となる既存のテキスト ファイルの名前です。The first is the name of an existing text file to redirect the standard input stream to. 2 つ目は、標準出力ストリームのリダイレクト先となるファイルの名前です。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 namespace System;
using namespace System::IO;

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   const int tabSize = 4;
   String^ usageText = "Usage: INSERTTABS inputfile.txt outputfile.txt";
   StreamWriter^ writer = nullptr;
   if ( args->Length < 3 )
   {
      Console::WriteLine( usageText );
      return 1;
   }

   try
   {
      // Attempt to open output file.
      writer = gcnew StreamWriter( args[ 2 ] );
      // 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( gcnew 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()) != nullptr )
   {
      String^ newLine = line->Replace( ((String^)"")->PadRight( tabSize, ' ' ), "\t" );
      Console::WriteLine( newLine );
   }

   writer->Close();
   
   // Recover the standard output stream so that a 
   // completion message can be displayed.
   StreamWriter^ standardOutput = gcnew StreamWriter( Console::OpenStandardOutput() );
   standardOutput->AutoFlush = true;
   Console::SetOut( standardOutput );
   Console::WriteLine( "INSERTTABS has completed the processing of {0}.", args[ 1 ] );
   return 0;
}

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

        try {
            // Attempt to open output file.
            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(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;
    }
}
Imports System.IO

Public Class InsertTabs
   Private Const tabSize As Integer = 4
   Private Const usageText As String = "Usage: INSERTTABS inputfile.txt outputfile.txt"
   
   Public Shared Function Main(args() As String) As Integer
      Dim writer As StreamWriter = Nothing

      If args.Length < 2 Then
         Console.WriteLine(usageText)
         Return 1
      End If
      
      Try
         ' Attempt to open output file.
         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(New StreamReader(args(0)))
      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 = 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
      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 
End Class

注釈

既定では、 Outプロパティは標準出力ストリームに設定されます。By default, the Out property is set to the standard output stream.

をカプセル化するを使用しStreamWriterて、出力をファイルに送信できます。 FileStreamA StreamWriter that encapsulates a FileStream can be used to send output to a file. 次に例を示します。For example:

Console::WriteLine("Hello World");
FileStream^ fs = gcnew FileStream("Test.txt", FileMode::Create);
// First, save the standard output.
TextWriter^ tmp = Console::Out;
StreamWriter^ sw = gcnew StreamWriter(fs);
Console::SetOut(sw);
Console::WriteLine("Hello file");
Console::SetOut(tmp);
Console::WriteLine("Hello World");
sw->Close();
Console.WriteLine("Hello World");
FileStream fs = new FileStream("Test.txt", FileMode.Create);
// First, save the standard output.
TextWriter tmp = Console.Out;
StreamWriter sw = new StreamWriter(fs);
Console.SetOut(sw);
Console.WriteLine("Hello file");
Console.SetOut(tmp);
Console.WriteLine("Hello World");
sw.Close();
Console.WriteLine("Hello World")
Dim fs As New FileStream("Test.txt", FileMode.Create)
' First, save the standard output.
Dim tmp as TextWriter = Console.Out
Dim sw As New StreamWriter(fs)
Console.SetOut(sw)
Console.WriteLine("Hello file")
Console.SetOut(tmp)
Console.WriteLine("Hello World")
sw.Close()

によってOut返される実際のオブジェクトは、指定されたテキストライターの同期されたラッパーである場合があります。The actual object returned by Out may be a synchronized wrapper around the provided text writer.

セキュリティ

SecurityPermission
アンマネージコードを呼び出すための。for calling unmanaged code. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

適用対象

こちらもご覧ください