31.10 - rad sa fajlovima (TXT)
U programiranju često želimo da sačuvamo podatke kako bi ostali dostupni i nakon što se program završi.
To se radi pomoću datoteka (fajlova).
U datoteke možemo upisivati i iz njih čitati različite vrste podataka.
Najčešće se koriste dve vrste datoteka:
-
Tekstualne datoteke – podaci se čuvaju kao običan tekst (čovek može da ih pročita u Notepadu).
-
Binarne datoteke – podaci se čuvaju u obliku bajtova (računar ih razume, ali čovek ne).
Primeri iz stvarnog života
-
Tekstualni fajl može biti spisak učenika, dnevnik, ili rezultati testova.
-
Binarni fajl može biti slika, audio zapis, ili čuvanje podataka o objektima u programu (npr. igra čuva stanje).
1. Tekstualne datoteke
📘 U C jeziku
Za rad sa datotekama u C-u koristi se pokazivač tipa FILE* i funkcije iz biblioteke stdio.h.
🔹 Primer: upis i čitanje teksta
#include <stdio.h>
int main() {
FILE *fajl = fopen("podaci.txt", "w"); // otvaranje za pisanje
if (fajl == NULL) {
printf("Greška pri otvaranju datoteke!\n");
return 1;
}
fprintf(fajl, "Ime: Marko\n");
fprintf(fajl, "Godine: 18\n");
fclose(fajl);
// Čitanje
fajl = fopen("podaci.txt", "r");
char linija[50];
while (fgets(linija, sizeof(linija), fajl)) {
printf("%s", linija);
}
fclose(fajl);
return 0;
}
📄 Objašnjenje:
-
fopen("naziv", "w")otvara datoteku za pisanje. -
fprintf()upisuje tekst u fajl. -
fgets()čita red po red. -
fclose()zatvara datoteku.
📘 U C# jeziku
U C#-u se koristi System.IO biblioteka sa klasama StreamWriter i StreamReader.
🔹 Primer: upis i čitanje teksta
using System; // ovo se koristi za sve vrste aplkacija
using System.IO; // OBAVEZNO DODATI za rad sa ulazom i izlazom (i fajlovima)!
// namespace .....
class Program {
static void Main() {
// Upis u datoteku
using (StreamWriter sw = new StreamWriter("podaci.txt")) {
sw.WriteLine("Ime: Marko");
sw.WriteLine("Godine: 18");
}
// Čitanje iz datoteke
using (StreamReader sr = new StreamReader("podaci.txt")) {
string linija;
while ((linija = sr.ReadLine()) != null)
Console.WriteLine(linija);
}
}
}
📄 Objašnjenje:
-
StreamWritersluži za pisanje teksta, aStreamReaderza čitanje. -
Ključna reč
usingautomatski zatvara datoteku kad se završi blok.