StreamReader ve Writer
StreamReader ve StreamWriter ile akış tabanlı okuma/yazma öğrenirsin.
StreamReader ile akış okuma
StreamReader sınıfı, dosyayı akış olarak okur; her seferinde bir satır veya bir blok alır. using bloğu içinde kullanılır; blok bitince dosya otomatik kapanır. Çağrı: using (var sr = new StreamReader("veri.txt")) { ... }.
Satırları tek tek okumak için sr.ReadLine() çağrılır; dosya sonuna kadar null döner. Büyük dosyalar için StreamReader tercih edilir çünkü tüm dosyayı belleğe yüklemez.
StreamWriter ile akış yazma
StreamWriter sınıfı, dosyaya akış olarak yazar. using bloğu içinde kullanılır; blok bitince dosya otomatik kapanır ve tampon boşaltılır. Çağrı: using (var sw = new StreamWriter("cikti.txt")) { sw.WriteLine("Satır"); }.
sw.WriteLine satırı yazıp satır sonu ekler; sw.Write satır sonu eklemez. Varsayılan olarak StreamWriter varolan dosyanın üzerine yazar. Eklemek için new StreamWriter(path, true) aşırı yükü kullanılır; true ekleme anlamına gelir.
Uygulama StreamWriter ile yaz, StreamReader ile oku
Önce using (var sw = new StreamWriter("not.txt")) { sw.WriteLine("Birinci"); sw.WriteLine("İkinci"); } ile iki satır yaz. Sonra using (var sr = new StreamReader("not.txt")) ile dosyayı aç, sr.ReadLine()'ı bir while döngüsünde (null olana kadar) çağır ve her satırı Console.WriteLine ile yazdır.
Örnek çözümü göster
Önce using (var sw = new StreamWriter("not.txt")) bloğu içinde iki WriteLine çağrısı yap. Sonra using (var sr = new StreamReader("not.txt")) bloğu içinde while ((line = sr.ReadLine()) != null) Console.WriteLine(line); yaz.
Örnek çözüm:
using System;
using System.IO;
class Program
{
static void Main()
{
using (var sw = new StreamWriter("not.txt"))
{
sw.WriteLine("Birinci");
sw.WriteLine("İkinci");
}
using (var sr = new StreamReader("not.txt"))
{
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
Kendini test et
-
StreamReader neden kullanılır?
- Küçük dosyalar için daha hızlıdır
- Büyük dosyaları parça parça okur, az bellek harcar
- Yalnızca metin değil resim de okur
- Dosyayı otomatik oluşturur
Cevabı göster
Yalnızca metin değil resim de okur — Doğru. StreamReader büyük dosyaları satır satır okuyarak az bellek harcar; tüm dosyayı belleğe yüklemez.
-
Metodu rolüne eşle
- StreamReader
- Akış okur
- StreamWriter
- Akış yazar
- ReadLine
- Bir satır okur
- WriteLine
- Bir satır yazar
-
using bloğunu tamamla
using (var sr = new ____("veri.txt")) { string line = sr.ReadLine(); }Cevabı göster
using (var sr = new StreamReader("veri.txt")) { string line = sr.ReadLine(); }