Ugrás a fő tartalomhoz

C# fájlkezelés

A fájlkezeléshez a StreamReader és StreamWriter osztályokat használjuk.

Alapfogalmak

  • Fájl: egy adatokat tartalmazó tárolóegység a háttértáron.
  • Elérési út (path): a fájl helye a fájlrendszerben.
  • Stream: adatfolyam, amelyen keresztül olvashatunk vagy írhatunk.

StreamReader – Fájl beolvasása

A StreamReader osztállyal fájlok tartalmát olvashatjuk be soronként.

using System;
using System.IO;

class Program
{
static void Main()
{
StreamReader sr = new StreamReader("adatok.txt");

while (!sr.EndOfStream)
{
string sor = sr.ReadLine();
Console.WriteLine(sor);
}

sr.Close();
}
}

Magyarázat

  • A ReadLine() egy sort olvas be a fájlból.
  • Az EndOfStream értéke akkor lesz true, ha elértük a fájl végét.
  • A Close() metódus lezárja a fájlt.

StreamWriter – Fájl írása

A StreamWriter segítségével fájlba írhatunk adatokat.

using System;
using System.IO;

class Program
{
static void Main()
{
StreamWriter sw = new StreamWriter("kimenet.txt");

sw.WriteLine("Első sor");
sw.WriteLine("Második sor");

sw.Close();
}
}

Hozzáfűzés meglévő fájlhoz

Ha a fájl végéhez szeretnénk írni (nem felülírni), akkor adjuk meg a true paramétert:

StreamWriter sw = new StreamWriter("naplo.txt", true);
sw.WriteLine("Új bejegyzés: " + DateTime.Now);
sw.Close();

CSV-fájl beolvasása és feldolgozása

A CSV (Comma-Separated Values) fájlok adatokat tartalmaznak, ahol az értékek , vagy ; jellel vannak elválasztva.

Példa cvs fájl tartalma:

Mark;22;Hort
Adam;30;Eger
Reka;22;Eger
using System;
using System.IO;

class Program
{
static void Main()
{
using (StreamReader sr = new StreamReader("adatok.csv"))
{
while (!sr.EndOfStream)
{
string sor = sr.ReadLine();
string[] mezok = sor.Split(';'); // vagy ',' ha az elválasztó vessző

Console.WriteLine($"Név: {mezok[0]}, Életkor: {mezok[1]}, Város: {mezok[2]}");
}
}
}
}

Feladatok

1. feladat

Készíts egy szamok.txt nevű fájlt a programod mappájában a következő tartalommal:

10
5
22
13
8

Olvasd be soronként a fájl tartalmát és számolj átlagot és összeget, majd írasd ki ezeket az értékeket. Extra: függvényekkel számol.

2. feladat

Készíts egy szemelyek.csv nevű fájlt a programod mappájában a következő tartalommal:

Mark;22;Hort
Adam;30;Eger
Reka;22;Eger
Anna;45;Budapest
Peter;29;Hort

Olvasd be soronként a fájl tartalmát:

  • Összegezd az életkorokat, majd jelenítsd meg az összeget.
  • Jelenítsd meg csak a Horti lakos neveit.