Read – faylni faqat oʻqish uchun ochish. Yozishga harakat qilinganda istesno yuzaga keladi;
Write – faylni faqat yozish uchun ochish. Oʻqishga harakat qilinganda istesno yuzaga keladi;
ReadWrite – faylni oʻqish va yozishga ochish.
Fayldan oʻqish.Oqimdan berilganlarni oʻqish uchun Bizga StreamReader sinfi kerak boʻladi. Bu sinfda berilganlarni qulay oʻqish uchun koʻplab metoodlar amalga oshirilgan. Quyida fayl mazmunini monitor ekraniga chiqaruvchi dastur keltirilgan:
static void Main(string[] args)
{
FileStream file1 = new FileStream("d:\\test.txt", FileMode.Open);
// fayl oqimini yaratamiz
StreamReader reader = new StreamReader(file1); /* «potokli o'quvchi»
yaratamiz va uni fayl oqimi bilan bog'laymiz */
Console.WriteLine(reader.ReadToEnd()); /* oqimdan barcha berilganlarni o'qiymiz va ekranga chiqaramiz */
reader.Close(); // oqimni yopamiz
Console.ReadLine();
}
ReadToEnd() metodi fayldan barcha ma’lumotlarni oʻqiydi. ReadLine() – bitta satrni oʻqiydi (bunda oqim koʻrsatkichi yangi satrga oʻtadi va metodning navbatdagi chaqiriluvda navbatdagi satr oʻqiladi).
EndOfStream xossasi oqimda joriy pozitsiya oqim oxiridaligi yoki yoʻqligini koʻrsatadi (faylning oxiriga yetildimi). true yoki false qaytaradi.
Faylga yozish.Berilganlarni oqimga yozish uchun StreamWriter sinfidan foydalaniladi. Faylga yozishga doir misol koʻramiz:
static void Main(string[] args)
{
FileStream file1 = new FileStream("d:\\test.txt", FileMode.Create); // fayl oqimini yaratamiz
StreamWriter writer = new StreamWriter(file1); /* «potokli o'quvchi»
yaratamiz va uni fayl oqimi bilan bog'laymiz */
writer.Write("Matn"); // faylga yozamiz
writer.Close(); // oqimni yopamiz. Oqim yopilmasa, faylga hech narsa yozilmaydi
}
WriteLine() metodi faylga satrma-satr yozadi (Write() yordamidagi oddiy yozuv kabi), faqat satr oxirida yangi satr qoʻshiladi.
Har doim oqim bilan ishlashni tugallagandan soʻng, uni Close() metodidan foydalangan holda yopish (manbalarni boʻshatish) zarur.
Berilganlarni oʻqishda/yozishdagi kodlash StreamReader/StreamWriter metodini yaratishda koʻrsatiladi:
static void Main(string[] args)
{
FileStream file1 = new FileStream("d:\\test.txt", FileMode.Open);
StreamReader reader = new StreamReader(file1, Encoding.Unicode);
StreamWriter writer = new StreamWriter(file1, Encoding.UTF8);
}
StreamReader va StreamWriter sinflaridan foydalanilganida alohida FileStream fayl oqimini yaratmaslik, buni darhol StreamReader/StreamWriterni yaratishda bajarish mumkin:
StreamReader/StreamWriter:
static void Main(string[] args)
{
StreamWriter writer = new StreamWriter("d:\\test.txt"); // oqimga emas, balki faylga yo'l ko'rsatamiz
writer.WriteLine("Matn");
writer.Close();
}
Papka yaratish uchun Directory sinfining CreateDirectory() statik metodidan foydalaniladi:
static void Main(string[] args)
{
Directory.CreateDirectory("d:\\new_folder");
}
Papkani oʻchirilsh uchun Delete() metodidan foydalaniladi:
static void Main(string[] args)
{
Directory.Delete("d:\\new_folder"); // bo'sh papkani o'chirish
}
Papka boʻsh boʻlmasa, rekursiv oʻchirish parametrini koʻrsatish zarur – true:
static void Main(string[] args)
{ // papkani ichidagi berilganlar bilan birgalikda o'chirish
Directory.Delete("d:\\new_folder", true);
}