Failitöötlus C# keeles toimub kasutades klasse, mis on määratud System.IO ruumidesse. Antud koodis kasutatavad klassid on:
StreamWriter— andmete kirjutamiseks faili.StreamReader— andmete lugemiseks failist.File.ReadAllLines— failist kõikide ridade lugemiseks järjendina.
| Oskus | Õpitud tegevus |
|---|---|
| Failikirjutus | StreamWriter, WriteLine() |
| Faililugemine | StreamReader, ReadToEnd(), File.ReadAllLines() |
| Vigade käsitlemine | try-catch |
| Andmestruktuurid | List<string>: lisamine, muutmine, kustutamine |
| Failitee kasutamine | Path.Combine, AppDomain.CurrentDomain.BaseDirectory |
| Otsing ja salvestus | Contains(), WriteAllLines() |
—————————————————————————————-
- Andmete kirjutamine faili
public static void Kirjuta_failisse()
{
try
{
string path = Path.Combine(@"..\..\..\Kuud.txt"); // Faili tee
StreamWriter text = new StreamWriter(path, true); // true = lisamine faili lõppu
Console.WriteLine("Sisesta mingi tekst: "); // Küsi kasutajalt sisestust
string lause = Console.ReadLine(); // Loe sisestatud tekst
text.WriteLine(lause); // Kirjuta tekst faili
text.Close(); // Sulge fail
}
catch (Exception)
{
Console.WriteLine("Mingi viga failiga"); // Kui viga, siis prindi veateade
}
}
—————————————————————————————-
StreamWriter(path, true) — avab faili, et kirjutada andmeid faili lõppu.
text.WriteLine(lause) — kirjutab sisestatud teksti faili.
text.Close() — sulgeb faili pärast andmete kirjutamist.
—————————————————————————————-
2.Andmete lugemine failist
Lugemine_fail() meetod loeb faili sisu ja prindib selle konsooli:
public static void Lugemine_fail(string failinimi)
{
try
{
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, failinimi); // Faili tee
StreamReader text = new StreamReader(path); // Avab faili lugemiseks
string laused = text.ReadToEnd(); // Loeb kogu faili sisu
text.Close(); // Sulgeb faili
Console.WriteLine(laused); // Prindib faili sisu ekraanile
}
catch (Exception)
{
Console.WriteLine("Mingi viga failiga, ei saa faili lugeda"); // Kui viga, siis prindi veateade
}
}
Faili ridadelt andmete lugemine ja töötlemine
public static List<string> RidadeLugemine(string failinimi2)
{
List<string> kuude_list = new List<string>(); // Loome nimekirja ridadest
try
{
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, failinimi2); // Faili tee
foreach (string rida in File.ReadAllLines(path)) // Loeme faili read
{
kuude_list.Add(rida); // Lisame iga rea nimekirja
}
}
catch (Exception)
{
Console.WriteLine("Viga failiga: "); // Kui viga, siis prindi veateade
}
// Prindi kõik read
foreach (string kuu in kuude_list)
{
Console.WriteLine(kuu);
}
// Eemaldame "Juuni" nimekirjast
kuude_list.Remove("Juuni");
// Muudame esimese rea sisu
if (kuude_list.Count > 0)
kuude_list[0] = "Veeel kuuu";
Console.WriteLine("--------------Kustutasime juuni-----------");
// Prindi nimekiri pärast muudatusi
foreach (string kuu in kuude_list)
{
Console.WriteLine(kuu);
}
return kuude_list; // Tagastame muudatud nimekirja
}
Kokkuvõte
StreamWriterjaStreamReaderon peamised klassid, mida kasutatakse failide lugemiseks ja kirjutamiseks.- Failide lugemine ja kirjutamine toimub kas kõikide ridade lugemise või rea-realt lugemise kaudu.
- Failide töötlemisel on oluline vigade käsitlemine, et vältida programmi ootamatut lõpetamist.
- Kui vaja, saab muuta või eemaldada kindlaid ridu pärast faili lugemist.

