StreamWriter-Konstruktor (String, Boolean)

Initialisiert für die angegebene Datei im angegebenen Pfad eine neue Instanz der StreamWriter-Klasse unter Verwendung der Standardcodierung und -puffergröße. Wenn die Datei vorhanden ist, kann sie überschrieben oder angefügt werden. Wenn die Datei nicht vorhanden ist, erstellt dieser Konstruktor eine neue Datei.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Sub New ( _
    path As String, _
    append As Boolean _
)
'Usage
Dim path As String
Dim append As Boolean

Dim instance As New StreamWriter(path, append)
public StreamWriter (
    string path,
    bool append
)
public:
StreamWriter (
    String^ path, 
    bool append
)
public StreamWriter (
    String path, 
    boolean append
)
public function StreamWriter (
    path : String, 
    append : boolean
)

Parameter

  • path
    Der vollständige Dateipfad, in den geschrieben werden soll.
  • append
    Bestimmt, ob Daten an die Datei angehängt werden sollen. Wenn die Datei vorhanden ist und append den Wert false hat, wird die Datei überschrieben. Wenn die Datei vorhanden ist und append den Wert true hat, werden die Daten an die Datei angefügt. Andernfalls wird eine neue Datei erstellt.

Ausnahmen

Ausnahmetyp Bedingung

UnauthorizedAccessException

Zugriff wird verweigert.

ArgumentException

path ist leer.

– oder –

path enthält den Namen eines Systemgeräts (com1, com2 usw.).

ArgumentNullException

path ist NULL (Nothing in Visual Basic).

DirectoryNotFoundException

Der angegebene Pfad ist ungültig. Dies ist z. B. der Fall, wenn das Laufwerk des Pfads nicht zugeordnet ist.

IOException

path enthält eine falsche oder ungültige Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung.

PathTooLongException

Der angegebene Pfad und/oder der Dateiname überschreiten die vom System vorgegebene Höchstlänge. Beispielsweise dürfen auf Windows-Plattformen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.

SecurityException

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Hinweise

Dieser Konstruktor erstellt einen StreamWriter mit UTF-8-Codierung ohne Bytereihenfolgemarkierung (BOM, Byte Order Mark), sodass die GetPreamble-Methode ein leeres Bytearray zurückgibt. Weitere Informationen finden Sie unter Encoding.

Der path-Parameter kann ein Dateiname sein, u. a. eine Datei in einer UNC-Freigabe (Universal Naming Convention).

Bei dem path-Parameter muss es sich nicht um eine auf dem Datenträger gespeicherte Datei handeln. Er kann ein beliebigen Teil eines Systems sein, das den Zugriff mithilfe von Streams unterstützt.

Warnung

Wenn Sie einen Zeichensatz mit einer bestimmten Kultureinstellung kompilieren und die gleichen Zeichen mit einer anderen Kultureinstellung abrufen, können diese möglicherweise nicht interpretiert werden, und es wird eine Ausnahme ausgelöst.

Ein Beispiel für die Verwendung dieser Klasse finden Sie im Beispielabschnitt. In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Eine Textdatei erstellen.

Gewusst wie: Schreiben von Text in eine Datei

In eine Textdatei schreiben.

Gewusst wie: Schreiben von Text in eine Datei

Aus einer Textdatei lesen.

Gewusst wie: Lesen aus einer Textdatei

Text an eine Datei anfügen.

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

File.AppendText

FileInfo.AppendText

Die Größe einer Datei abrufen.

FileInfo.Length

Die Attribute einer Datei abrufen.

File.GetAttributes

Die Attribute einer Datei festlegen.

File.SetAttributes

Bestimmen, ob eine Datei vorhanden ist.

File.Exists

Aus einer Binärdatei lesen.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

In eine Binärdatei schreiben.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Beispiel

Im folgenden Codebeispiel wird der StreamWriter-Konstruktor veranschaulicht.

Public Sub CreateTextFile(ByVal FileName As String, _
    ByVal TextToAdd As String)

    Dim Fs As FileStream = New FileStream(FileName, _
        FileMode.CreateNew, FileAccess.Write, FileShare.None)

    Dim SwFromFile As StreamWriter = New StreamWriter(FileName)
    SwFromFile.Write(TextToAdd)
    SwFromFile.Flush()
    SwFromFile.Close()

    Dim SwFromFileStream As StreamWriter = New StreamWriter(Fs)
    SwFromFileStream.Write(TextToAdd)
    SwFromFileStream.Flush()
    SwFromFileStream.Close()

    Dim SwFromFileStreamDefaultEnc As StreamWriter = _
     New StreamWriter(Fs, System.Text.Encoding.Default)
    SwFromFileStreamDefaultEnc.Write(TextToAdd)
    SwFromFileStreamDefaultEnc.Flush()
    SwFromFileStreamDefaultEnc.Close()

    Dim SwFromFileTrue As StreamWriter = _
     New StreamWriter(FileName, True)
    SwFromFileTrue.Write(TextToAdd)
    SwFromFileTrue.Flush()
    SwFromFileTrue.Close()

    Dim SwFromFileTrueUTF8Buffer = _
     New StreamWriter(FileName, _
     True, System.Text.Encoding.UTF8, 512)
    SwFromFileTrueUTF8Buffer.Write(TextToAdd)
    SwFromFileTrueUTF8Buffer.Flush()
    SwFromFileTrueUTF8Buffer.Close()

    Dim SwFromFileTrueUTF8 = _
     New StreamWriter(FileName, True, _
     System.Text.Encoding.UTF8)
    SwFromFileTrueUTF8.Write(TextToAdd)
    SwFromFileTrueUTF8.Flush()
    SwFromFileTrueUTF8.Close()

    Dim SwFromFileStreamUTF8Buffer = _
     New StreamWriter(Fs, System.Text.Encoding.UTF8, 512)
    SwFromFileStreamUTF8Buffer.Write(textToAdd)
    SwFromFileStreamUTF8Buffer.Flush()
    SwFromFileStreamUTF8Buffer.Close()

End Sub
public void CreateTextFile(string fileName, string textToAdd) 
{
    string logFile = DateTime.Now.ToShortDateString()
        .Replace(@"/",@"-").Replace(@"\",@"-") + ".log";
    
    FileStream fs = new FileStream(fileName,
        FileMode.CreateNew, FileAccess.Write, FileShare.None);
    
    StreamWriter swFromFile = new StreamWriter(logFile);
    swFromFile.Write(textToAdd);
    swFromFile.Flush();
    swFromFile.Close();

    StreamWriter swFromFileStream = new StreamWriter(fs);
    swFromFileStream.Write(textToAdd);
    swFromFileStream.Flush();
    swFromFileStream.Close();

    StreamWriter swFromFileStreamDefaultEnc = 
        new System.IO.StreamWriter(fs, 
        System.Text.Encoding.Default);
    swFromFileStreamDefaultEnc.Write(textToAdd);
    swFromFileStreamDefaultEnc.Flush();
    swFromFileStreamDefaultEnc.Close();

    StreamWriter swFromFileTrue = 
        new StreamWriter(fileName,true);
    swFromFileTrue.Write(textToAdd);
    swFromFileTrue.Flush();
    swFromFileTrue.Close();
    
    StreamWriter swFromFileTrueUTF8Buffer = 
        new StreamWriter(fileName, 
        true, System.Text.Encoding.UTF8,512);
    swFromFileTrueUTF8Buffer.Write(textToAdd);
    swFromFileTrueUTF8Buffer.Flush();
    swFromFileTrueUTF8Buffer.Close();

    StreamWriter swFromFileTrueUTF8 = 
        new StreamWriter(fileName, true,
        System.Text.Encoding.UTF8);
    swFromFileTrueUTF8.Write(textToAdd);
    swFromFileTrueUTF8.Flush();
    swFromFileTrueUTF8.Close();

    StreamWriter swFromFileStreamUTF8Buffer = 
        new StreamWriter(fs, System.Text.Encoding.UTF8, 512);
    swFromFileStreamUTF8Buffer.Write(textToAdd);
    swFromFileStreamUTF8Buffer.Flush();
    swFromFileStreamUTF8Buffer.Close();
}
void CreateTextFile( String^ fileName, String^ textToAdd )
{
   String^ logFile = String::Concat( DateTime::Now.ToShortDateString()
      ->Replace( "/", "-" )->Replace( "\\", "-" ), ".log" );

   FileStream^ fs = gcnew FileStream( fileName,
      FileMode::CreateNew, FileAccess::Write, FileShare::None );

   StreamWriter^ swFromFile = gcnew StreamWriter( logFile );
   swFromFile->Write( textToAdd );
   swFromFile->Flush();
   swFromFile->Close();

   StreamWriter^ swFromFileStream = gcnew StreamWriter( fs );
   swFromFileStream->Write( textToAdd );
   swFromFileStream->Flush();
   swFromFileStream->Close();

   StreamWriter^ swFromFileStreamDefaultEnc =
      gcnew System::IO::StreamWriter( fs,
         System::Text::Encoding::Default );
   swFromFileStreamDefaultEnc->Write( textToAdd );
   swFromFileStreamDefaultEnc->Flush();
   swFromFileStreamDefaultEnc->Close();

   StreamWriter^ swFromFileTrue =
      gcnew StreamWriter( fileName,true );
   swFromFileTrue->Write( textToAdd );
   swFromFileTrue->Flush();
   swFromFileTrue->Close();

   StreamWriter^ swFromFileTrueUTF8Buffer =
      gcnew StreamWriter( fileName,
         true, System::Text::Encoding::UTF8, 512 );
   swFromFileTrueUTF8Buffer->Write( textToAdd );
   swFromFileTrueUTF8Buffer->Flush();
   swFromFileTrueUTF8Buffer->Close();

   StreamWriter^ swFromFileTrueUTF8 =
      gcnew StreamWriter( fileName, true,
         System::Text::Encoding::UTF8 );
   swFromFileTrueUTF8->Write( textToAdd );
   swFromFileTrueUTF8->Flush();
   swFromFileTrueUTF8->Close();

   StreamWriter^ swFromFileStreamUTF8Buffer =
      gcnew StreamWriter( fs, System::Text::Encoding::UTF8, 512 );
   swFromFileStreamUTF8Buffer->Write( textToAdd );
   swFromFileStreamUTF8Buffer->Flush();
   swFromFileStreamUTF8Buffer->Close();
}
public void CreateTextFile(String fileName, String textToAdd)
{
    String logFile = DateTime.get_Now().ToShortDateString().
        Replace("/", "-").Replace("\\", "-") + ".log";
    FileStream fs = new FileStream(fileName, FileMode.CreateNew, 
        FileAccess.Write, FileShare.None);
    StreamWriter swFromFile = new StreamWriter(logFile);
    swFromFile.Write(textToAdd);
    swFromFile.Flush();
    swFromFile.Close();
    StreamWriter swFromFileStream = new StreamWriter(fs);
    swFromFileStream.Write(textToAdd);
    swFromFileStream.Flush();
    swFromFileStream.Close();
    StreamWriter swFromFileStreamDefaultEnc = 
        new System.IO.StreamWriter(fs,System.Text.Encoding.get_Default());
    swFromFileStreamDefaultEnc.Write(textToAdd);
    swFromFileStreamDefaultEnc.Flush();
    swFromFileStreamDefaultEnc.Close();
    StreamWriter swFromFileTrue = new StreamWriter(fileName, true);
    swFromFileTrue.Write(textToAdd);
    swFromFileTrue.Flush();
    swFromFileTrue.Close();
    StreamWriter swFromFileTrueUTF8Buffer = new StreamWriter(fileName,
        true, System.Text.Encoding.get_UTF8(), 512);
    swFromFileTrueUTF8Buffer.Write(textToAdd);
    swFromFileTrueUTF8Buffer.Flush();
    swFromFileTrueUTF8Buffer.Close();
    StreamWriter swFromFileTrueUTF8 = new StreamWriter(fileName,
        true, System.Text.Encoding.get_UTF8());
    swFromFileTrueUTF8.Write(textToAdd);
    swFromFileTrueUTF8.Flush();
    swFromFileTrueUTF8.Close();
    StreamWriter swFromFileStreamUTF8Buffer = new StreamWriter(fs,
        System.Text.Encoding.get_UTF8(), 512);
    swFromFileStreamUTF8Buffer.Write(textToAdd);
    swFromFileStreamUTF8Buffer.Flush();
    swFromFileStreamUTF8Buffer.Close();
} //CreateTextFile

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

StreamWriter-Klasse
StreamWriter-Member
System.IO-Namespace

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei