Jak číst textového souboru pomocí System.IO jazyka Visual Basic 2005 nebo Visual Basic .NET

Microsoft Visual C# .NET verzi tohoto článku naleznete v tématu 306777 .

Pro Microsoft Visual Basic 6.0 verzi tohoto článku naleznete v tématu 183638 .

Souhrn

Tento článek ukazuje, jak načíst informace z textového souboru a použít třídu ArrayList Chcete-li zobrazit tyto informace pro uživatele.

Čtení textových souborů v jazyce Visual Basic 2005 nebo Visual Basic .NET

Otevření a čtení souborů pro přístup pro čtení je důležitou součástí funkce vstup a výstup (IO), i když není nutné zapisovat do souboru dotyčné. Tento příklad otevře soubor pro čtení, což je užitečné pro textové soubory, ale není vhodný pro binární soubory. Tento příklad používá jednu z mnoha metod, které jsou k dispozici pro otevření souboru. Přestože mnoho datových struktur jsou k dispozici pro ukládání informací, které je načteno z soubor, je třída ArrayList Nejjednodušší struktura použít. Chcete-li otevřít a číst ze souboru, tento příklad používá objekty z oboru názvů System.IO konkrétně třídy System.IO.StreamReader .

Poznámka: Tato ukázka vyžaduje určitou formu textu (TXT) soubor, ze kterého chcete přečíst.

Chcete-li načíst čtení textového souboru z aplikace Microsoft Visual Basic 2005 nebo Microsoft Visual Basic .NET, postupujte takto:
  1. Spusťte Microsoft Visual Studio 2005 nebo Microsoft Visual Studio .NET. Vytvoření nové aplikace konzoly v jazyce Visual Basic. Visual Studio vytvoří modul , spolu s prázdné procedury Main() .
  2. Ujistěte se, že projekt odkazuje alespoň oboru názvů System . Pomocí příkazu Imports na System, System.IOa System.Collections obory názvů, takže není nutné kvalifikovat deklarace z těchto oborů názvů později v kódu. Musíte použít tyto příkazy před všemi ostatními deklaracemi.
    Imports SystemImports System.IO
    Imports System.Collections

  3. Chcete-li otevřít soubor pro čtení, vytvoření nové instance objektu StreamReader a předat cestu souboru do konstruktoru takto:
    Dim objReader As New StreamReader("c:\test.txt")
  4. Budete potřebovat řetězcové proměnné, do které chcete uložit každý řádek souboru, jak je zpracovat. Vzhledem k tomu, že budete přidávat tyto řádky do ArrayList, deklarovat a vytvořit objekt tohoto typu i.
    Dim sLine As String = ""Dim arrText As New ArrayList()

  5. Existuje několik způsobů pro čtení souboru, včetně ReadToEnd metoda, která čte najednou v celém souboru. V tomto příkladu však můžete použít metodu ReadLine přenést v jednom řádku souboru současně. Pokud je dosaženo konce souboru, vrátí tato metoda "Nic," což umožňuje způsob, jak ukončit vaše smyčka. Při čtení každé řádky ze souboru, můžete použít metodu Add ArrayList vložit řádky do vaší třídy ArrayList .
    Do    sLine = objReader.ReadLine()
    If Not sLine Is Nothing Then
    arrText.Add(sLine)
    End If
    Loop Until sLine Is Nothing
    objReader.Close()

  6. Použijte smyčku "Pro každou" zapsat obsah vaší nově vyplněné ArrayList do konzoly takto:
    For Each sLine In arrText    Console.WriteLine(sLine)
    Next
    Console.ReadLine()

  7. Uložit a spustit váš kód, který vytváří seznam souboru konzoly.

Úplný výpis kódu

Imports SystemImports System.IO
Imports System.Collections

Module Module1

Sub Main()
Dim objReader As New StreamReader("c:\test.txt")
Dim sLine As String = ""
Dim arrText As New ArrayList()

Do
sLine = objReader.ReadLine()
If Not sLine Is Nothing Then
arrText.Add(sLine)
End If
Loop Until sLine Is Nothing
objReader.Close()

For Each sLine In arrText
Console.WriteLine(sLine)
Next
Console.ReadLine()
End Sub

End Module

Nástrahy

Existuje několik možností, jak si být vědomi při práci s vstupně-výstupní, včetně následujících položek:
  • Kdykoli přístup k souboru, je možné, že soubor, který chcete číst nebo zapisovat nemusí být v systému nebo může být používán.
  • V tomto příkladu načte do paměti celý soubor, před zpracování souboru. Může nastat situace, ve kterém je soubor příliš velký, mají být drženy v paměti, nebo nemáte oprávnění k přístupu k souboru.
Některá z těchto situací způsobí výjimku být vyvolána. Je vždy vhodné poskytnout blok try... catch pro zpracování těchto běžných problémů.
Vlastnosti

ID článku: 302309 - Poslední kontrola: 19. 1. 2017 - Revize: 1

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

Váš názor