Číst v angličtině

Sdílet prostřednictvím


Console.SetOut(TextWriter) Metoda

Definice

Nastaví Out vlastnost pro cílení na TextWriter objekt.

public static void SetOut (System.IO.TextWriter newOut);

Parametry

newOut
TextWriter

Zapisovač textu, který se má použít jako nový standardní výstup.

Výjimky

newOut je null.

Volající nemá požadované oprávnění.

Příklady

Následující příklad ukazuje použití SetOut metody. Nahrazuje čtyři po sobě jdoucí znaky mezery v řetězci znakem tabulátoru. Pokud ho chcete spustit, musíte uvést dva argumenty příkazového řádku. První je název existujícího textového souboru, do kterého se má přesměrovat standardní vstupní proud. Druhým je název souboru, do kterého má být přesměrován standardní výstupní datový proud. Tento soubor nemusí existovat. Je-li tomu tak, její obsah bude přepsán.

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;
    }
}

Poznámky

Ve výchozím nastavení Out je vlastnost nastavena na standardní výstupní datový proud.

K StreamWriter FileStream odeslání výstupu do souboru lze použít zapouzdření a. Příklad:

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

Skutečný objekt vrácený funkcí Out může být synchronizovaný Obálka kolem poskytnutého zapisovače textu.

Platí pro

Viz také