C # - Dosya G / Ç

Bir filebelirli bir ad ve dizin yolu ile bir diskte depolanan veri koleksiyonudur. Bir dosya okumak veya yazmak için açıldığında, dosyastream.

Akış, temelde iletişim yolundan geçen bayt dizisidir. İki ana akış vardır:input stream ve output stream. input stream dosyadan veri okumak için kullanılır (okuma işlemi) ve output stream dosyaya yazmak için kullanılır (yazma işlemi).

C # I / O Sınıfları

System.IO ad alanında, dosya oluşturma ve silme, bir dosyadan okuma veya dosyaya yazma, bir dosyayı kapatma vb. Gibi dosyalarla çeşitli işlemleri gerçekleştirmek için kullanılan çeşitli sınıflar vardır.

Aşağıdaki tablo, System.IO ad alanında yaygın olarak kullanılan bazı soyut olmayan sınıfları gösterir -

Sr.No. G / Ç Sınıfı ve Tanımı
1

BinaryReader

İkili bir akıştan ilkel verileri okur.

2

BinaryWriter

İlkel verileri ikili biçimde yazar.

3

BufferedStream

Bayt akışı için geçici bir depolama.

4

Directory

Bir dizin yapısının değiştirilmesine yardımcı olur.

5

DirectoryInfo

Dizinler üzerinde işlem yapmak için kullanılır.

6

DriveInfo

Sürücüler için bilgi sağlar.

7

File

Dosyaları değiştirmeye yardımcı olur.

8

FileInfo

Dosyalarda işlem yapmak için kullanılır.

9

FileStream

Bir dosyadaki herhangi bir yerden okumak ve yazmak için kullanılır.

10

MemoryStream

Bellekte depolanan akışlı verilere rastgele erişim için kullanılır.

11

Path

Yol bilgileri üzerinde işlemler gerçekleştirir.

12

StreamReader

Bir bayt akışından karakterleri okumak için kullanılır.

13

StreamWriter

Bir akıma karakter yazmak için kullanılır.

14

StringReader

Bir string tampondan okumak için kullanılır.

15

StringWriter

Bir dizge tamponuna yazmak için kullanılır.

FileStream Sınıfı

FileStreamSystem.IO ad alanındaki sınıf, dosyalardan okuma, dosyaya yazma ve kapatma işlemlerinde yardımcı olur. Bu sınıf, Stream soyut sınıfından türer.

Bir yaratmanız gerekiyor FileStreamyeni bir dosya oluşturmak veya mevcut bir dosyayı açmak için nesne. Bir oluşturmak için sözdizimiFileStream nesne aşağıdaki gibidir -

FileStream <object_name> = new FileStream( <file_name>, <FileMode Enumerator>,
   <FileAccess Enumerator>, <FileShare Enumerator>);

Örneğin, bir FileStream nesnesi oluşturuyoruz F adlı bir dosyayı okumak için sample.txt as shown -

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read,
   FileShare.Read);
Sr.No. Parametre ve Açıklama
1

FileMode

FileModenumaralandırıcı, dosyaları açmak için çeşitli yöntemler tanımlar. FileMode numaralandırıcının üyeleri şunlardır:

  • Append - Mevcut bir dosyayı açar ve imleci dosyanın sonuna koyar veya dosya yoksa dosyayı oluşturur.

  • Create - Yeni bir dosya oluşturur.

  • CreateNew - İşletim sistemine yeni bir dosya oluşturması gerektiğini belirtir.

  • Open - Mevcut bir dosyayı açar.

  • OpenOrCreate - İşletim sistemine, varsa bir dosya açması gerektiğini, aksi takdirde yeni bir dosya oluşturması gerektiğini belirtir.

  • Truncate - Mevcut bir dosyayı açar ve boyutunu sıfır bayta indirir.

2

FileAccess

FileAccess numaralandırıcıların üyeleri var: Read, ReadWrite ve Write.

3

FileShare

FileShare numaralandırıcıların aşağıdaki üyeleri var -

  • Inheritable - Bir dosya tutamacının kalıtımı alt süreçlere geçirmesine izin verir

  • None - Mevcut dosyanın paylaşımını reddeder

  • Read - Dosyanın okunması için açılmasına izin verir.

  • ReadWrite - Dosyanın okunması ve yazılması için açılmasını sağlar

  • Write - Dosyayı yazmak için açmaya izin verir

Misal

Aşağıdaki program, FileStream sınıf -

using System;
using System.IO;

namespace FileIOApplication {
   class Program {
      static void Main(string[] args) {
         FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, 
            FileAccess.ReadWrite);
         
         for (int i = 1; i <= 20; i++) {
            F.WriteByte((byte)i);
         }
         F.Position = 0;
         for (int i = 0; i <= 20; i++) {
            Console.Write(F.ReadByte() + " ");
         }
         F.Close();
         Console.ReadKey();
      }
   }
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

C # 'da Gelişmiş Dosya İşlemleri

Yukarıdaki örnek, C # 'da basit dosya işlemleri sağlar. Bununla birlikte, C # System.IO sınıflarının muazzam güçlerinden yararlanmak için, bu sınıfların yaygın olarak kullanılan özelliklerini ve yöntemlerini bilmeniz gerekir.

Sr.No. Konu Açıklama
1 Metin dosyalarından Okuma ve Yazma

Metin dosyalarından okumayı ve metin dosyalarına yazmayı içerir. StreamReader ve StreamWriter sınıf bunu başarmaya yardımcı olur.

2 İkili dosyalardan Okuma ve Yazma

İkili dosyalardan okumayı ve bunlara yazmayı içerir. BinaryReader ve BinaryWriter sınıf bunu başarmaya yardımcı olur.

3 Windows dosya sistemini düzenleme

Bir C # programcısına Windows dosya ve dizinlerine göz atma ve bulma yeteneği verir.