IRONSOFTWAREHOME

C# Dosya Okuma ve Yazma

C# Dosya Okuma ve Yazma

Tim Corey

24m 34s

C#'daki dosya giriş ve çıkış (I/O) işlemleri birçok yazılım uygulamasının önemli bir parçasıdır ve geliştiricilerin dosyalardan okuyup dosyalara yazmasını verimli bir şekilde sağlar. Verileri depolamak, uygulama olaylarını kaydetmek veya büyük miktarda metin ya da ikili veriyi işlemek için olsun, C# dosyalarla çalışmak için sağlam araçlar sağlar. Tim Corey'nin "C# Veri Erişimi: Metin Dosyaları" adlı videosunda, bu dosya işlemlerine dair detaylı bir gezinti sunuyor ve hem veri depolama hem de alımı için metin dosyalarının nasıl kullanılacağını vurguluyor. Bu makale, Tim'in videoda ele aldığı ana kavramlar ve tekniklerin bir özetini sunmayı hedefliyor, C#'ta dosya I/O işlemleri hakkında size pratik bilgiler veriyor.

Giriş

C#'ta, dosya giriş ve çıkış işlemleri metin dosyalarından okuma ve yazma için esastır. File sınıfı, mevcut dosyalarla etkileşim kurmak veya yeni dosyalar oluşturmak için statik yöntemler sağlar. StreamReader ve StreamWriter genellikle dosya okuma ve yazma işlemleri için kullanılır. StreamReader dosyaları satır satır okur, metinlerin her satırına veya bir dizi dizeye erişmenizi sağlar. Daha büyük dosyaları verimli bir şekilde okumak için while döngüsünü de kullanabilirsiniz. StreamWriter sınıfı, dosyalara veri yazmak için kullanılır ve dizeler ve diziler yazmayı destekler. Mevcut bir dosyaya metin eklemek veya tüm dosyayı üzerine yazmak için kullanılabilir. WriteLine ve WriteText gibi yöntemler, metin dosyalarında kolay veri manipülasyonuna izin verir.

Bu işlemler genellikle dosya yolunu tanımladığınız static void Main yöntemi içinde gerçekleştirilir. Örneğin, bir dosya adı belirleyebilir ve bir dize veya bir bütün dizi yazmak için StreamWriter kullanabilirsiniz. using ifadesi, kaynak sızıntılarını önleyerek dosyanın işlemlerden sonra düzgün bir şekilde kapatılmasını sağlar. StreamReader dosyaları satır satır okumak için de kullanılabilir ve dosya mevcut olmadığında veya erişilemediğinde oluşabilecek potansiyel hataları yönetmek için istisnalarla başa çıkılabilir. Bu dosya I/O yetenekleri, C#'ı dosyalarla verimli ve etkili bir şekilde çalışmak için mükemmel bir seçim haline getirir.

Tim, C#'ta metin dosyalarından okumanın ve yazmanın basitliğini vurgulayarak konuyu tanıtır. Bu görevlerin birkaç satır kodla başarılabileceğini, metin dosyalarını veri depolama için geçerli bir seçenek haline getirdiğini göstermektedir.

Bir Demo Konsol Uygulaması Oluşturma

Tim, Visual Studio kullanarak "TextFileDataAccessDemo" adlı yeni bir konsol uygulaması oluşturarak başlar.

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;

namespace TextFileDataAccessDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadLine(); // Keeps the console window open to view the output
        }
    }
}

Kullanıcılara çıktıyı görme imkanı sağlamak için Console.ReadLine kullanımı ile konsol penceresini açık tutmayı açıklar.

Metin Dosyasından Okuma

Tim, File.ReadAllLines yöntemi kullanarak bir metin dosyasından nasıl okuma yapılacağını gösteriyor. Dosya yollarının nasıl ele alınacağını ve kaçış karakterlerinden kaçınmak için dize sabitlerinin nasıl kullanılacağını gösterir.

string filePath = @"C:\demos\test.txt";
List<string> lines = File.ReadAllLines(filePath).ToList();

File.ReadAllLines yöntemi belirtilen dosyadaki tüm satırları okur ve bunları bir dizi dize olarak geri döndürür. Tim, bu diziyi daha kolay manipülasyon için bir listeye dönüştürür.

Metin Dosyasına Yazma

Tim, File.WriteAllLines yöntemi kullanarak bir metin dosyasına nasıl veri yazılacağını açıklar. Listeye yeni satırlar eklemeyi ve güncellenmiş listeyi dosyaya geri yazmayı gösterir.

lines.Add("Sue,Storm,WWIStorm.com");
File.WriteAllLines(filePath, lines);

Bu kod, listeye yeni bir giriş ekler ve tüm listeyi tekrar dosyaya yazar.

Bir Veri Modeli Oluşturma ve Dosyadan Dolurma

Tim, metin dosyasındaki her girdi için veri yapısını temsil etmek amacıyla bir Person sınıfı oluşturur.

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string URL { get; set; }
}

Daha sonra dosyayı okur ve Person nesnelerinden oluşan bir listeyi doldurur.

List<Person> people = new List<Person>();
List<string> lines = File.ReadAllLines(filePath).ToList();

foreach (string line in lines)
{
    string[] entries = line.Split(',');
    Person newPerson = new Person
    {
        FirstName = entries[0],
        LastName = entries[1],
        URL = entries[2]
    };
    people.Add(newPerson);
}

Bu kod her satırı okur, virgülle ayırır ve elde edilen veri ile bir Person nesnesi oluşturur.

Dize Enterpolasyonu

Tim, C# 6.0'da değişkenleri ve dizeleri birleştirme sürecini basitleştiren, dize enterpolasyonunu tanıtır. Bu yöntem, değişkenleri doğrudan dizenin içine gömmek için dize öncesinde $ sembolü ve {} süslü parantezlerini kullanır.

foreach (var person in people)
{
    Console.WriteLine($"{person.FirstName} {person.LastName}: {person.URL}");
}

Bu söz dizimi, + operatörü kullanılarak yapılan geleneksel birleştirmeye kıyasla daha özlü ve verimlidir.

C# Read Write File

Veri Doğrulama

Tim, bir metin dosyası okurken veriyi doğrulamanın önemini vurgular. Verinin yapısını varsaymanın risklerini belirtir ve bölünmüş girişlerin uzunluğunu kontrol etmenizi önerir.

foreach (string line in lines)
{
    string[] entries = line.Split(',');
    if (entries.Length == 3)
    {
        Person newPerson = new Person
        {
            FirstName = entries[0],
            LastName = entries[1],
            URL = entries[2]
        };
        people.Add(newPerson);
    }
    else
    {
        // Handle error
        Console.WriteLine("Invalid data format.");
    }
}

olası çalışma zamanı hatalarını önler

Bir Listeye Nesneler Ekleme

Tim, listeye yeni nesneler eklemeyi gösteriyor. Listeye yeni bir kişi eklemek için Person sınıfının anonim bir örneğini kullanıyor.

people.Add(new Person { FirstName = "Greg", LastName = "Jones", URL = "WOWT.com" });

Bu, tek bir satırda yeni bir Person nesnesi oluşturur ve başlatır, ardından people listesine eklenir.

Veriyi Tekrar Metin Dosyasına Yazma

Tim, Person nesnelerinin listesini metin dosyasına geri yazmayı açıklar. Person nesnelerinin listesini, her bir dizenin dosyada bir satıra karşılık geldiği bir dize listesine dönüştürür.

List<string> output = new List<string>();
foreach (var person in people)
{
    output.Add($"{person.FirstName},{person.LastName},{person.URL}");
}
File.WriteAllLines(filePath, output);

Bu kod, people listesinde dolaşır, her Person nesnesi için bir CSV dizesi oluşturur ve dizeler listesini dosyaya yazar.

Sonuç

Tim Corey'nin C#'ta dosya I/O işlemleri üzerindeki ayrıntılı rehberi, metin dosyalarından okuma ve metin dosyalarına yazma konusunda pratik bilgiler sağlar. Onun örneklerini takip ederek, geliştiriciler metin dosyalarını etkili bir şekilde yönetebilir ve sağlam veri depolama çözümleri uygulayabilir. Daha derin bir anlayış ve uygulamalı bir öğrenme deneyimi için, Tim Corey'nin gerçek dünya örnekleriyle daha derine indiği videosunu izleyin.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez