C# File I/O ve Stream Kullanımı


C#, dosya okuma ve yazma işlemleri için oldukça güçlü bir desteğe sahiptir. Bu makalede C# ile File I/O (Girdi/Çıktı) işlemlerini ve stream kullanımını ele alacağız. Dosya işlemleri, programlar arasında veri paylaşımının yanı sıra kalıcı veri saklama amacıyla da sıklıkla kullanılır. Bu nedenle File I/O becerileri yazılım geliştirme sürecinde oldukça önemlidir.

C# File I/O Temelleri

C#, dosya işlemleri için System.IO adındaki isim alanını (namespace) kullanır. Bu isim alanı, dosya ve akış (stream) işlemleri için gerekli olan sınıfları içerir. İster metin dosyaları, ister ikili dosyalar olsun, dosya okuyucu ve yazıcı sınıfları ile bu işlemler kolayca yapılabilir.

Dosya Yazma

Dosya yazmak için en yaygın kullanılan sınıf StreamWriterdır. Aşağıda bir metin dosyasına veri yazma örneği verilmiştir:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        using (StreamWriter writer = new StreamWriter(dosyaYolu))
        {
            writer.WriteLine("Merhaba, C# File I/O!");
            writer.WriteLine("Bu dosya, C# ile yazılmıştır.");
        }
    }
}

Dosya Okuma

Yazılmış bir dosyayı okumak için ise StreamReader sınıfı kullanılmaktadır. Aşağıdaki örnekte, daha önce yazdığımız dosyayı okuyacağız:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string dosyaYolu = "ornek.txt";
        using (StreamReader reader = new StreamReader(dosyaYolu))
        {
            string line;
            while ((line = reader.ReadLine()) != null)
            {
                Console.WriteLine(line);
            }
        }
    }
}

Stream Kullanımı

C#’ta verileri akışlar (streams) aracılığıyla yönlendirmek, veriye hızlı erişim sağlamak açısından önemlidir. Akışlar, verilerin okuma veya yazma işlemlerini gerçekleştirmek için bir yol sağlar. Akış kullanımı, dosya veya veritabanı işlemlerinin hızını artıran önemli bir özelliktir.

Memory Stream Kullanımı

Bazı durumlarda verileri bellekte tutmak için MemoryStream sınıfını kullanırız. Aşağıdaki örnekte, bellekte veri akışı oluşturacağız:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (MemoryStream memoryStream = new MemoryStream())
        {
            byte[] veri = { 1, 2, 3, 4, 5 };
            memoryStream.Write(veri, 0, veri.Length);
            memoryStream.Position = 0;
            byte[] okunanVeri = new byte[5];
            memoryStream.Read(okunanVeri, 0, okunanVeri.Length);
            Console.WriteLine(string.Join(", ", okunanVeri));
        }
    }
}

C# File I/O ve stream kullanımı ile dosya okuma, yazma ve veri akışı yönetiminde oldukça etkili çözümler sunmaktadır. Bu temel bilgilere hakim olursanız, daha kapsamlı dosya işlemlerinde de kolaylıkla ilerleyebilirsiniz. C# File I/O üzerine daha detaylı içerikler ve örnekler ile bu konudaki bilginizi geliştirebilirsiniz.