Töö Failidega

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.