Visual Basic'te dosyalarla çalışma, hem klasik prosedürler (FileOpen, Input, Put, Close) hem de .NET API (System.IO.StreamReader, StreamWriter, FileStream) aracılığıyla desteklenmektedir. .NET sınıflarının kullanılması tercih edilmektedir.
İnce noktalar:
Using yapıları kullanılması önerilir.StreamReader/StreamWriter, baytlar için FileStream kullanın.Örnek kod:
Dim filePath As String = "test.txt" ' Dosyaya yazma Using writer As New StreamWriter(filePath) writer.WriteLine("Merhaba dünya!") End Using ' Dosyadan okuma Using reader As New StreamReader(filePath) Dim content As String = reader.ReadToEnd() End Using
StreamWriterile bir dosyaya yazım yaptıktan sonra akışı kapatmazsak ne olur veUsingyapısını kullanmanın önemi nedir?
Cevap:
Eğer akışı kapatmazsanız ( Close çağrılmazsa veya Using kullanılmazsa), tamponlanan veriler diske kaydedilmeyebilir çünkü işletim sistemi bunları hafızada saklar. Ayrıca, açık bir akış dosya tanımlayıcısını tutar ve dosya diğer işlemler için kilitli kalabilir; uzun süreli uygulamalarda bu bellek ve kaynak sızıntısına yol açar. Using yapısı, bir istisna oluşsa bile Dispose çağrısını garanti eder.
Hikaye
Veri kaybı aniden: Bir bankada rapor oluşturma sırasında geliştirici
StreamWriter'ı kapatmadı. Sonuç olarak, serbest bırakılmamış tampon nedeniyle dosyaya bazı veriler kaydedilmedi, müşteri hizmetleri departmanı nihai raporları açamadı.
Hikaye
Dosya tanımlayıcı sızıntısı: ERP sisteminde geliştiriciler dosyaları manuel olarak açtı ve sık sık
Closeçağrısını unuttular. Birkaç gün içinde uygulama açılan dosya sınırını aşarak çöküyordu.
Hikaye
Dosya kilitlenme çatışması: Ağ yedekleme hizmetinde dosya uygun erişim modunda açılmadı, bu da diğer programlara erişimi engelledi ve tüm departmanda uzun süreli duraksamalar yaşandı.