Nasıl yapılır: Visual Basic'te Metin Dosyalarından Okuma

ReadAllText nesnesinin My.Computer.FileSystem yöntemi bir metin dosyasından okumanızı sağlar. Dosyanın içeriği ASCII veya UTF-8 gibi bir kodlama kullanıyorsa dosya kodlaması belirtilebilir.

Genişletilmiş karakterler içeren bir dosyadan okuyorsanız, dosya kodlamasını belirtmeniz gerekir.

Uyarı

Bir dosyayı tek seferde tek satırlık bir metin okumak için nesnesinin OpenTextFileReaderMy.Computer.FileSystem yöntemini kullanın. OpenTextFileReader metodu bir StreamReader nesnesi döndürür. ReadLine nesnesinin StreamReader yöntemini kullanarak bir dosyayı birer satır okuyabilirsiniz. Dosyanın sonunu, EndOfStream nesnesinin StreamReader yöntemini kullanarak test edebilirsiniz.

Metin dosyasından okumak için

ReadAllText nesnesinin My.Computer.FileSystem yöntemini kullanarak bir metin dosyasının içeriğini bir dizeye okuyun ve dosya yolunu sağlayın. Aşağıdaki örnek, test.txt içeriğini bir dizeye okur ve bir ileti kutusunda görüntüler.

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

Kodlanmış bir metin dosyasından okumak için

ReadAllText nesnesinin My.Computer.FileSystem yöntemini kullanarak bir metin dosyasının içeriğini bir dizeye okumak için dosya yolunu ve kodlama türünü belirtin. Aşağıdaki örnek, test.txt UTF32 dosyasının içeriğini bir dizeye okur ve ardından bir ileti kutusunda görüntüler.

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

Metin dosyasından RichTextBox denetimine okumak için

Bir metin dosyasının içeriğini doğrudan RichTextBox denetimine yüklemek için, dosya içeriğini bir dizeye okuyun ve RichTextBox özelliğine Text atayın. Aşağıdaki örnekte, bir metin dosyasının nasıl okunduğu ve RichTextBox denetimine nasıl yükleyebileceğiniz gösterilmektedir.

' 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

Daha iyi hata işleme ve dosya yolu yönetimi için, uygun bir dosya yolu oluşturan ve olası özel durumları işleyen aşağıdaki yaklaşımı kullanabilirsiniz. Bu yaklaşım, farklı sistemlerde sorunlara neden olabilecek sabit kodlanmış sürücü yollarını önler:

' 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

Uyarı

Dosya yollarını belirtirken, "C:\temp\file.txt" gibi sabit kodlanmış mutlak yollar kullanmaktan kaçının çünkü bunlar sürücü harfinin veya dizin yapısının farklı olduğu sistemlerde sorunlara neden olabilir. Bunun yerine, kodunuzun farklı ortamlarda çalıştığından emin olmak için göreli yolları kullanın veya kullanarak Combine yollar oluşturabilirsiniz.

Sağlam Programlama

Aşağıdaki koşullar bir özel duruma neden olabilir:

  • Yol aşağıdaki nedenlerden biri için geçerli değildir: sıfır uzunluklu bir dizedir, yalnızca boşluk içerir, geçersiz karakterler içerir veya bir cihaz yoludur (ArgumentException).

  • Yol geçerli değil çünkü Nothing (ArgumentNullException).

  • Dosya yok (FileNotFoundException).

  • Dosya başka bir işlem tarafından kullanılıyor veya G/Ç hatası oluşuyor (IOException).

  • Yol, sistem tarafından tanımlanan uzunluk üst sınırını (PathTooLongException) aşıyor.

  • Yoldaki bir dosya veya dizin adı, iki nokta üst üste (:) içeriyor ya da geçersiz bir biçimde (NotSupportedException) olabilir.

  • Dizeyi arabelleğe (OutOfMemoryException) yazmak için yeterli bellek yok.

  • Kullanıcı, yolu ( ) görüntülemek için gerekli izinlere sahipSecurityException değil.

Dosyanın adı yerine dosyanın içeriğine göre kararlar almayın. Örneğin, Form1.vb dosyası bir Visual Basic kaynak dosyası olmayabilir.

Uygulamanızda verileri kullanmadan önce tüm girişleri doğrulayın. Dosyanın içeriği beklendiği gibi olmayabilir ve dosyadan okuma yöntemleri başarısız olabilir.

Ayrıca bakınız