c filestream streamwriter
Bu Öğreticide, bir C # Ad Alanı olan System.IO hakkında bilgi edineceksiniz. Bu Ad Alanı FileStream, StreamWriter, StreamReader gibi Dosya G / Ç'yi İşlemek İçin C # Sınıfları Sağlar:
ağ güvenlik anahtarımı nerede bulabilirim
Dosya, temelde bellekte belirli bir dizinde uygun bir ad ve uzantı ile saklanan bir sistem nesnesidir. C # 'da, bir dosyayı veri yazmak veya okumak için kullanırsak, akış olarak adlandırırız.
Bu eğitimde, belirli bir dosyadan veri almak için kullanılan giriş akışını ve bir dosyaya veri koymak için kullanılan çıkış akışını inceleyeceğiz.
=> Ultimate C # Eğitim Kılavuzumuzu Buradan Kontrol Edin
Ne öğreneceksin:
System.IO Ad Alanı
System.IO, belirli bir dosyadan veri oluşturmak, düzenlemek ve almak gibi belirli bir akış üzerinde farklı işlemler gerçekleştirmek için kullanılabilecek sınıfları içeren, C # 'da bulunan bir ad alanıdır.
Bu sınıflardan bazılarına bir göz atalım.
C # Dosya Akışı
Dosya akışı, dosya işlemlerini gerçekleştirmek için bir yol sunar. Esas olarak dosyalara veri okumak ve yazmak için kullanılır.
Bir dosyaya yazmak için örnek:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); f.Close(); Console.WriteLine('File Stream closed'); } } }
Burada, dosya akışını kullanarak dosyaya tek baytlık bir veri yazmak için basit bir program yazdık. İlk önce bir FileStream nesnesi oluşturduk ve dosyanın adını geçtik. Ardından dosya modunu açılacak veya oluşturacak şekilde ayarlıyoruz. Açılan dosyada WriteByte kullanarak tek bir bayt yazdık ve sonunda her şeyi kapattık.
Çıktı, tek baytlı bir txt dosyasıdır.
Dosya Okuma Örneği
Önceki örneğimizde şimdi bir dosyaya nasıl yazılacağını öğrendik, dosyayı okumaya çalışalım.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: '+a); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Burada baytı dosyadan okumak için ReadByte'ı kullandık. Bu komut, dosyadan tek bir bayt okumak için kullanılır. Daha fazla veri okumak istiyorsanız, bir döngüden geçirmeniz gerekecektir. Daha sonra onu bir char değişkeninde sakladık, ancak dönüş türü her zaman ReadByte ile eşleşmeyeceğinden, char için bir cast ekledik.
Bu programı çalıştırırsak aşağıdaki çıktı gözlenir.
Çıktı
Dosya açıldı
Dosyadan okunan veriler: F
Dosya Akışı kapatıldı
C #StreamWriter
C #'daki StreamWriter sınıfı, bir akışa karakter yazmak için kullanılır. TextWriter sınıfını temel sınıf olarak kullanır ve bir dosyaya veri yazmak için aşırı yükleme yöntemleri sağlar.
StreamWriter, temel olarak bir dosyaya birden çok veri karakteri yazmak için kullanılır.
Misal:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //closing stream writer s.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
FileStream nesnesini başlattıktan sonra, FileStream nesnesini kullanarak StreamWriter nesnesini de başlattık. Daha sonra dosyaya tek satırlık bir veri yazmak için WriteLine yöntemini kullandık. Daha sonra StreamWriter'ı ve ardından FileStream'i kapattık.
Aşağıdaki kodun çıktısı, içine yazılmış kullanıcı verilerinin bulunduğu bir dosya olacaktır.
dijkstra'nın java öncelik kuyruğu kullanan algoritması
Çıktı
C #StreamReader
StreamReader, bir dosyadan dizeyi veya büyük cümleleri okumak için kullanılır. StreamReader ayrıca temel sınıfı olarak TextReader sınıfını kullanır ve ardından akıştan veri okumak için Reading ve ReadLine gibi yöntemler sunar.
Veri okuma örneği:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream writer sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); Console.ReadLine(); } } }
Burada FileStream kullanarak StreamReader'dan bir nesne oluşturduk. Ardından, dosyadan veri okumak için basit bir satır okuma yöntemi kullandık. StreamReader'ı ve ardından FileStream'i kapattık.
Yukarıdaki program aşağıdaki çıktıyı üretti:
Çıktı:
Dosya açıldı
Dosyadan veri okuma
Dosyadaki veriler şu şekildedir: Akış yazıcı kullanarak verileri dosyaya yazmak
Dosya Akışı kapatıldı
çevrimiçi izlemek için ücretsiz anime siteleri
C #TextWriter
C # 'da TextWriter sınıfı soyut bir sınıf olarak yazılır. Bir dosyanın içinde sıralı bir dizi karakter oluşturmak için kullanılır. Kullanıcının bir dosyaya sıralı karakterler veya metin yazmasına da izin veren akış yazıcısına oldukça benzer, ancak işlem için FileStream oluşturulmasını gerektirmez.
TextWriter'ın nasıl çalıştığını bilmek için örnek:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } Console.ReadLine(); } } }
Yukarıdaki kod, StreamWriter'a benzer şekilde çalışır. WriteLine yöntemi, verileri dosyanın içine yazar. Using deyim bloğu içinde birden çok WriteLine yöntemi kullanarak dosyaya birden çok veri yazabilirsiniz.
Çıktı, kullanıcı tanımlı metinle bir metin dosyası oluşturacaktır.
Çıktı:
C #Metin Okuyucu
Metin okuyucu, System.IO'da bulunan başka bir sınıftır. Belirli bir dosyadan metin veya herhangi bir ardışık karakter okumak için kullanılır.
Misal:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
Yukarıdaki programda, belirli bir konumda tutulan bir dosyayı açmak için TextReader'ı kullandık. Sonra dosyanın verilerini saklamak için bir dize değişkeni tanımladık. ReadToEnd yöntemi, dosyanın içindeki tüm verilerin okunmasını sağlar. Ondan sonra verileri konsola yazdırdık.
Yukarıdaki programın çıktısı şöyle olacaktır:
Metin yazarlı ilk satır
Sonuç
C # içindeki System.IO ad alanı, programcıların farklı dosyalarda okuma-yazma işlemleri gerçekleştirmesini sağlamak için çeşitli sınıflar ve yöntemler sunar. System.IO, FileStream, StreamReader, StreamWriter, TextReader, TextWriter vb. Gibi birkaç sınıf içerir.
Tüm bu sınıflar, ihtiyaca bağlı olarak dosya üzerinde okuma yazma işlemleri için özel bir uygulama sağlar.
Kod Örneği
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string() args) { FileStream f = new FileStream('d:\b.txt', FileMode.OpenOrCreate); Console.WriteLine('File opened'); f.WriteByte(70); Console.WriteLine('Data written into file'); char a = (char)f.ReadByte(); Console.WriteLine('Data read from file is: ' + a); //declared stream writer StreamWriter s = new StreamWriter(f); Console.WriteLine('Writing data to file'); s.WriteLine('Writing data into file using stream writer'); //declared stream reader StreamReader sr = new StreamReader(f); Console.WriteLine('Reading data from the file'); string line = sr.ReadLine(); Console.WriteLine('The data from the file is : ' + line); //closing stream sr.Close(); f.Close(); Console.WriteLine('File Stream closed'); using (TextWriter writer = File.CreateText('d:\textFile.txt')) { writer.WriteLine('The first line with text writer'); } using (TextReader txtR = File.OpenText('d:\textFile.txt')) { String data = txtR.ReadToEnd(); Console.WriteLine(data); } Console.ReadLine(); } } }
=> Tam C # Eğitim Serisini Buradan İzleyin
Önerilen Kaynaklar
- Unix'te Dosya Manipülasyonu: Unix Dosya Sistemine Genel Bakış
- Dosya Manipülasyonu için Unix Özel Karakterleri veya Metakarakterleri
- Unix Dosya Erişim İzinleri: Unix Chmod, Chown ve Chgrp
- VBScript Dosya Nesneleri: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File
- C ++ 'da Dosya Giriş Çıkış İşlemleri
- Java Dağıtımı: Java JAR Dosyasının Oluşturulması ve Yürütülmesi
- Unix'te İki Dosya Nasıl Karşılaştırılır: Dosya Karşılaştırma Komutları
- Gelişmiş Unix Kabuk Komut Dosyası: Diziler, Dosya ve Dize Test Operatörleri, Özel Değişkenler