1. Faili kirjutamine (StreamWriter)
1.1 Alusnäide
try
{
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Kuud.txt");
StreamWriter text = new StreamWriter(path, true); // true = lisa lõppu
Console.WriteLine("Sisesta mingi tekst: ");
string lause = Console.ReadLine();
text.WriteLine(lause);
text.Close();
}
catch (Exception)
{
Console.WriteLine("Mingi viga failiga");
}
1.2 Parim tava (using plokiga – automaatne sulgemine)
using (StreamWriter sw = new StreamWriter(path, true))
{
sw.WriteLine("Midagi");
} // Fail suletakse automaatselt
Märkus:
truelisab andmed faili lõppu, ei kirjutata üle.- Fail salvestatakse projekti kausta.
2. Faili lugemine (StreamReader)
2.1 Kogu sisu lugemine
try
{
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Kuud.txt");
StreamReader text = new StreamReader(path);
string laused = text.ReadToEnd();
text.Close();
Console.WriteLine(laused);
}
catch (Exception)
{
Console.WriteLine("Mingi viga failiga, ei saa faili lugeda");
}
2.2 Ridade kaupa lugemine List abil
List<string> kuude_list = new List<string>();
try
{
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Kuud.txt");
foreach (string rida in File.ReadAllLines(path))
{
kuude_list.Add(rida);
}
}
catch (Exception)
{
Console.WriteLine("Viga failiga!");
}
3. Listi muutmine ja kuvamine
// Kuvamine
foreach (string kuu in kuude_list)
{
Console.WriteLine(kuu);
}
// Eemalda "Juuni"
kuude_list.Remove("Juuni");
// Muuda esimest elementi
if (kuude_list.Count > 0)
kuude_list[0] = "Veeel kuuu";
Console.WriteLine("--------------Kustutasime juuni-----------");
foreach (string kuu in kuude_list)
{
Console.WriteLine(kuu);
}
4. Otsing nimekirjast
Console.WriteLine("Sisesta kuu nimi, mida otsida:");
string otsitav = Console.ReadLine();
if (kuude_list.Contains(otsitav))
Console.WriteLine("Kuu " + otsitav + " on olemas.");
else
Console.WriteLine("Sellist kuud pole.");
5. Listi salvestamine tagasi faili
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Kuud.txt");
File.WriteAllLines(path, kuude_list);
Console.WriteLine("Andmed on salvestatud.");
6. Parimad praktikad failitöötluses
- Kasuta Path.Combine, et määrata failitee töötab igas süsteemis.
- Kontrolli faili olemasolu:
if (!File.Exists(path))
File.WriteAllLines(path, new string[] { "Jaanuar", "Veebruar", "Märts" });
- Sulge failid alati või kasuta using plokki.
- Kasuta try-catch, et käsitleda vigu.
7. Kokkuvõte – oskused
| 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() |

