Gewusst wie: Öffnen und Anfügen an eine Protokolldatei

StreamWriter und StreamReader schreiben Zeichen in Streams bzw. lesen Zeichen daraus. Im folgenden Codebeispiel wird die Datei log.txt für die Eingabe geöffnet oder, falls nicht vorhanden, erstellt. Anschließend werden Informationen an das Ende der Datei angefügt. Danach wird der Inhalt der Datei für die Anzeige in die Standardausgabe geschrieben. In einer Alternative zu diesem Beispiel können die Informationen als einzelne Zeichenfolge oder einzelnes Zeichenfolgenarray gespeichert werden, und mithilfe der WriteAllText-Methode oder der WriteAllLines-Methode kann dann die gleiche Funktionalität erzielt werden.

HinweisHinweis

Visual Basic-Benutzer können zum Erstellen von oder Schreiben in Protokolldateien die von der Log-Klasse oder der FileSystem-Klasse bereitgestellten Methoden und Eigenschaften verwenden.

Beispiel

Imports System
Imports System.IO

Class DirAppend
    Public Shared Sub Main()
        Using w As StreamWriter = File.AppendText("log.txt")
            Log("Test1", w)
            Log("Test2", w)
            ' Close the writer and underlying file.
            w.Close()
        End Using
        ' Open and read the file.
        Using r As StreamReader = File.OpenText("log.txt")
            DumpLog(r)
        End Using
    End Sub

    Public Shared Sub Log(logMessage As String, w As TextWriter)
        w.Write(vbCrLf + "Log Entry : ")
        w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(), _
            DateTime.Now.ToLongDateString())
        w.WriteLine("  :")
        w.WriteLine("  :{0}", logMessage)
        w.WriteLine ("-------------------------------")
        ' Update the underlying file.
        w.Flush()
    End Sub

    Public Shared Sub DumpLog(r As StreamReader)
        ' While not at the end of the file, read and write lines.
        Dim line As String
        line = r.ReadLine()
        While Not (line Is Nothing)
            Console.WriteLine(line)
            line = r.ReadLine()
        End While
        r.Close()
    End Sub
End Class
using System;
using System.IO;

class DirAppend
{
    public static void Main()
    {
        using (StreamWriter w = File.AppendText("log.txt"))
        {
            Log("Test1", w);
            Log("Test2", w);
            // Close the writer and underlying file.
            w.Close();
        }
        // Open and read the file.
        using (StreamReader r = File.OpenText("log.txt"))
        {
            DumpLog(r);
        }
    }

    public static void Log(string logMessage, TextWriter w)
    {
        w.Write("\r\nLog Entry : ");
        w.WriteLine("{0} {1}", DateTime.Now.ToLongTimeString(),
            DateTime.Now.ToLongDateString());
        w.WriteLine("  :");
        w.WriteLine("  :{0}", logMessage);
        w.WriteLine ("-------------------------------");
        // Update the underlying file.
        w.Flush();
    }

    public static void DumpLog(StreamReader r)
    {
        // While not at the end of the file, read and write lines.
        string line;
        while ((line = r.ReadLine()) != null)
        {
            Console.WriteLine(line);
        }
        r.Close();
    }
}
using namespace System;
using namespace System::IO;

ref class DirAppend
{
public:
    static void Main()
    {
        StreamWriter^ w = File::AppendText("log.txt");
        Log("Test1", w);
        Log("Test2", w);
        // Close the writer and underlying file.
        w->Close();
        // Open and read the file.
        StreamReader^ r = File::OpenText("log.txt");
        DumpLog(r);
        r->Close();
    }

    static void Log(String^ logMessage, TextWriter^ w)
    {
        w->Write("\r\nLog Entry : ");
        w->WriteLine("{0} {1}", DateTime::Now.ToLongTimeString(),
            DateTime::Now.ToLongDateString());
        w->WriteLine("  :");
        w->WriteLine("  :{0}", logMessage);
        w->WriteLine ("-------------------------------");
        // Update the underlying file.
        w->Flush();
    }

    static void DumpLog(StreamReader^ r)
    {
        // While not at the end of the file, read and write lines.
        String^ line;
        while ((line = r->ReadLine()) != nullptr)
        {
            Console::WriteLine(line);
        }
        r->Close();
    }
};

int main()
{
    DirAppend::Main();
}

Siehe auch

Aufgaben

Gewusst wie: Erstellen einer Verzeichnisauflistung

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Gewusst wie: Lesen aus einer Textdatei

Gewusst wie: Schreiben von Text in eine Datei

Gewusst wie: Lesen von Zeichen aus einer Zeichenfolge

Gewusst wie: Schreiben von Zeichen in eine Zeichenfolge

Referenz

StreamWriter

StreamReader

File.AppendText

File.OpenText

StreamReader.ReadLine

Konzepte

Grundlegende Datei-E/A