VB.NET Textdatei erstellen

VB.NET Textdatei erstellen
VB.NET Textdatei erstellen

VB.NET Textdatei erstellen

Wenn Du in VB.NET eine Textdatei erstellen möchtest, bist Du hier in diesem Beitrag genau richtig!

Das von Textdateien verwendete Format ist wohl das am einfachsten zu Verstehende und daher ist es kein Wunder, dass es fast überall Anwendung findet.

Falls Du Dich auch dafür interessieren solltest, wie Du eine Textdatei einlesen kannst, schaue auch in meinem Beitrag VB.NET Textdatei einlesen vorbei.

Code

Klicke Dir am besten folgende GUI zurecht und im Anschluss starten wir dann mit dem Code:

VB.NET Textdatei erstellen GUI

Datei schreiben

Benötigte Klassen und Methoden

Um mit Dateien zu arbeiten stoßen wir zuallererst über die File-Klasse, wo wir Möglichkeiten für gängige Operationen wie das Schreiben und Lesen finden.

Wenn wir nach unserem englischen Wunsch-Begriff „write“ suchen, finden wir die folgenden für uns aktuell wichtigen Methoden:

WriteAllText(filepath, contents)

Hiermit können wir die angegebenen Zeichen in eine Textdatei an den angegebenen Ort schreiben.

Falls die Datei nicht existiert, wird sie erstellt und ansonsten überschrieben.

WriteAllText(filepath, contents, encoding)

Hier passiert alles eigentlich so wie in der Methode hier drüber, jedoch wird in diesem Fall das Encoding explizit angegeben.

WriteAllTextAsync(filepath, contents, cancellationToken)

Hier haben wir eine relativ neue Methode, Welche nur ab .NET 5 verfügbar ist.

Sie schreibt die Datei asynchron ins Dateisystem, was sich natürlich besonders bei größeren Dateien bemerkbar machen kann.

Los geht’s

Mache nun im Form-Designer einen Doppelklick auf den Button, oder generiere den Klick-Ereignishandler im CodeFenster via Comboboxen.

Im daraus entstehenden KlickEreignishandler schreiben wir dann wie folgt unsere Datei:

    Private Sub btnWriteFile_Click(sender As Object, e As EventArgs) Handles btnWriteFile.Click
        Dim filepath = tbFilepath.Text.Trim()
        Dim content = tbContent.Text

        WriteFileSync(filepath, content)
        ' WriteFileWithEncodingSync(filepath, content)
        ' WriteFileAsync(filepath, content)
    End Sub

Zuerst greife ich hier den Dateipfad für die entstehende Datei ab und entfernen eventuelle nachstehende oder führende Leerzeichen.

Dann lege ich den Inhalt der zu erstellenden Datei in der Variable „content“ fest, Welche aus der Text-Eigenschaft der „tbContent“-Textbox kommt.

Zum Schluss starte ich dann mit dem Schreiben der Textdatei selbst, dazu habe ich verschiedene weitere Methoden angelegt.

WriteFileSync(filepath, content)

Hier findet die wohl einfachste Variante statt, eine Textdatei zu schreiben.

Wir rufen die „WriteAllText„-Methode der File-Klasse mit passenden Parameter wie den Dateipfad und den zu schreibenden Inhalt auf.

Den Schreibvorgang selbst habe ich mit Try-Catch zum globalen Abfangen eines Fehlers ummantelt.

WriteFileWithEncodingSync(filepath, content)

Eigentlich passiert hier alles analog zur oberen Methode davon abgesehen, dass wir hier ein explizites Encoding angeben.

WriteFileAsync(filepath, content)

Hierbei handelt es sich um die oben bereits angesprochene neue Variante, eine Datei zu schreiben, ansonsten ist es analog zur ersten Methode „WriteFileSync“.

Kompletter Code – VB.NET Textdatei erstellen

Imports System.IO

Public Class Form1

    Private Sub btnWriteFile_Click(sender As Object, e As EventArgs) Handles btnWriteFile.Click
        Dim filepath = tbFilepath.Text.Trim()
        Dim content = tbContent.Text

        WriteFileSync(filepath, content)
        ' WriteFileWithEncodingSync(filepath, content)
        ' WriteFileAsync(filepath, content)
    End Sub

    Private Sub WriteFileSync(filepath As String, content As String)
        Try
            File.WriteAllText(filepath, content)
        Catch ex As Exception
            MessageBox.Show("Couldn't write file sync: " & ex.Message)
        End Try
    End Sub

    Private Sub WriteFileWithEncodingSync(filepath As String, content As String)
        Dim encoding = System.Text.Encoding.UTF8
        Try
            File.WriteAllText(filepath, content, encoding)
        Catch ex As Exception
            MessageBox.Show("Couldn't write file sync with encoding: " & ex.Message)
        End Try
    End Sub

    ' only available with .NET 5
    ' not in .NET Framework Apps
    'Private Sub WriteFileAsync(filepath As String, content As String)
    '    Try
    '        File.WriteAllTextAsync(filepath, content)
    '    Catch ex As Exception
    '        MessageBox.Show("Couldn't write file async: " & ex.Message)
    '    End Try
    'End Sub

End Class

Downloads

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.