Näide: Tekstifaili kirjutamine ja lugemine
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string filePath = "example.txt";
try
{
// ===== Writing to a file =====
using (StreamWriter writer = new StreamWriter(filePath, false, Encoding.UTF8))
{
writer.WriteLine("Hello, C#!");
writer.WriteLine("This is a text file example.");
writer.WriteLine($"Current Date: {DateTime.Now}");
}
Console.WriteLine("File written successfully.");
// ===== Reading from a file =====
using (StreamReader reader = new StreamReader(filePath, Encoding.UTF8))
{
Console.WriteLine("\nFile contents:");
string? line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (UnauthorizedAccessException)
{
Console.WriteLine("Error: You do not have permission to access this file.");
}
catch (FileNotFoundException)
{
Console.WriteLine("Error: File not found.");
}
catch (IOException ex)
{
Console.WriteLine($"I/O Error: {ex.Message}");
}
catch (Exception ex)
{
Console.WriteLine($"Unexpected error: {ex.Message}");
}
}
}
Kuidas see toimib?
1. Kirjutamine (StreamWriter)
Konstruktoris olev „false” tähendab faili ülekirjutamist (lisamiseks kasutage „true”).
„Encoding.UTF8” tagab õige märgikodeeringu.
„Ensures” kasutamine tagab faili automaatse sulgemise.
2. Lugemine (StreamReader)
Loeb rida-realt funktsiooniga ReadLine() kuni nullini (faili lõpp).
Kasutab järjepidevuse tagamiseks ka Encoding.UTF8 kodeeringut.
3. Veakäsitlus
Püüab kinni levinud erandeid, näiteks:
UnauthorizedAccessException (luba puudub)
FileNotFoundException (puuduv fail)
IOException (kettavead, lukustatud fail)
Generic Exception ootamatute probleemide korral.