Sdílet prostřednictvím


Postupy: Čtení z textových souborů v jazyce Visual Basic

Metoda ReadAllText objektu My.Computer.FileSystem umožňuje číst z textového souboru. Kódování souboru lze zadat, pokud obsah souboru používá kódování, jako je ASCII nebo UTF-8.

Pokud čtete soubor s rozšířenými znaky, budete muset zadat kódování souboru.

Poznámka:

Pokud chcete najednou přečíst soubor s jedním řádkem textu, použijte OpenTextFileReader metodu objektu My.Computer.FileSystem . Metoda OpenTextFileReader vrátí objekt StreamReader. Metodu ReadLine objektu StreamReader můžete použít ke čtení souboru po jednom řádku. Můžete otestovat konec souboru pomocí EndOfStream metody objektu StreamReader .

Čtení z textového souboru

ReadAllText Použijte metodu objektu My.Computer.FileSystem ke čtení obsahu textového souboru do řetězce a zadejte cestu. Následující příklad přečte obsah test.txt do řetězce a pak ho zobrazí v poli se zprávou.

Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText("test.txt")
MsgBox(fileReader)

Čtení z textového souboru, který je kódovaný

ReadAllText Použijte metodu objektu My.Computer.FileSystem ke čtení obsahu textového souboru do řetězce a zadejte cestu a typ kódování souboru. Následující příklad přečte obsah souboru UTF32 test.txt do řetězce a pak ho zobrazí v poli se zprávou.

Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText("test.txt",
   System.Text.Encoding.UTF32)
MsgBox(fileReader)

Číst z textového souboru do ovládacího prvku RichTextBox

Pokud chcete načíst obsah textového souboru přímo do ovládacího prvku RichTextBox, přečtěte si obsah souboru do řetězce a přiřaďte ho vlastnosti Text RichTextBox. Následující příklad ukazuje, jak číst textový soubor a načíst ho do ovládacího prvku RichTextBox.

' Load text file into a RichTextBox control
' Note: This assumes RichTextBox1 is a control on your form
Dim fileText As String
fileText = My.Computer.FileSystem.ReadAllText("test.txt")
' RichTextBox1.Text = fileText

Pro lepší zpracování chyb a správu cest k souborům můžete použít následující přístup, který vytvoří správnou cestu k souboru a zpracuje potenciální výjimky. Tento přístup zabraňuje pevně zakódovaným cestám disků, které můžou způsobovat problémy v různých systémech:

' Load text file into a RichTextBox control using a specific path
Try
    Dim filePath As String = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "test.txt")
    Dim fileText As String = My.Computer.FileSystem.ReadAllText(filePath)
    ' RichTextBox1.Text = fileText
Catch ex As System.IO.FileNotFoundException
    MsgBox("File not found: " & ex.Message)
Catch ex As Exception
    MsgBox("Error reading file: " & ex.Message)
End Try

Poznámka:

Při zadávání cest k souborům nepoužívejte pevně zakódované absolutní cesty, například "C:\temp\file.txt", protože to může způsobovat problémy v systémech, kde se písmeno jednotky nebo adresářová struktura liší. Místo toho použijte relativní cesty nebo vytvořte cesty, pomocí Combine které zajistíte, že váš kód funguje v různých prostředích.

Robustní programování

Následující podmínky mohou způsobit výjimku:

  • Cesta není platná z jednoho z následujících důvodů: jedná se o řetězec nulové délky, obsahuje pouze prázdné znaky, obsahuje neplatné znaky nebo je to cesta zařízení (ArgumentException).

  • Cesta není platná, protože je Nothing (ArgumentNullException).

  • Soubor neexistuje (FileNotFoundException).

  • Soubor se používá jiným procesem nebo dojde k chybě vstupně-výstupní operace (IOException).

  • Cesta překračuje maximální délku definovanou systémem (PathTooLongException).

  • Název souboru nebo adresáře v cestě obsahuje dvojtečku (:) nebo je v neplatném formátu (NotSupportedException).

  • Není dostatek paměti pro zápis řetězce do vyrovnávací paměti (OutOfMemoryException).

  • Uživatel nemá potřebná oprávnění k zobrazení cesty (SecurityException).

Nerozhodujte o obsahu souboru na základě názvu souboru. Soubor Form1.vb například nemusí být zdrojovým souborem jazyka Visual Basic.

Před použitím dat v aplikaci ověřte všechny vstupy. Obsah souboru nemusí být očekávaný a metody čtení ze souboru mohou selhat.

Viz také