rad sa fajlovima i folderima tokovi (strimovi) podataka trajno čuvanje podataka na računaru...

21
Osnove programiranja Rad sa fajlovima i folderima

Upload: others

Post on 10-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Osnove programiranja

Rad sa fajlovima i folderima

Page 2: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Sadržaj

Tokovi (strimovi) podataka Tekstualna datoteka Kreiranje izlaznog strima Upis podataka i zatvaranje strima Čitanje podataka iz fajla Putanja fajla Premeštanje, kopiranje i brisanje fajla Kreiranje, premeštanje, brisanje i izlistavanje

foldera

Page 3: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Tokovi (strimovi) podataka

Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi).

Osnovne operacije pri radu sa datotekama su čitanje iz datoteke i upis u nju.

Standardni ulaz obično čine podaci koji se unose sa tastature - omogućen metodom ReadLine.

Standardni izlaz se obično prikazuje na ekranu -omogućen metodom WriteLine.

Pored standardnog izlaza, postoji i standardni izlaz za greške.

Page 4: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Tokovi (strimovi) podataka

Moguće je izvršiti preusmeravanje (redirekciju) standardnog ulaza/izlaza tako da se, umesto sa tastature, karakteri čitaju iz neke datoteke (fajla) ili se upisuju u nju.

C# koristi takozvani tok ili strim (engl. stream) za modelovanje ulaza i izlaza.

Strim je veza između programa i izvora podataka. Podaci se mogu kretati u oba pravca, tako da se

strimovi mogu koristiti i za upis, i za čitanje odgovarajuće datoteke.

Page 5: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Tokovi (strimovi) podataka

Strim je uređena sekvenca bajtova poslata iz jedne aplikacije/ulaznog uređaja drugoj aplikaciji/izlaznom uređaju.

Strim - apstrakcija komunikacionog kanala podataka koji povezuje dva uređaja, tj. dve aplikacije.

Ovi bajtovi se linearno čitaju i pišu, jedan za drugim, i uvek pristižu istim redosledom kako su i poslati.

Svaki put kada se vrši čitanje/upis u odgovarajuću datoteku mora da se otvori strim do te datoteke, izvrši čitanje/upis, a onda se na kraju taj strim mora zatvoriti.

Postoje tekstualni i binarni.

Page 6: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Rad u konzoli – globalni prostor imena

Standardni upis/čitanje sa konzole je implementiran preko Console klase, metodama ReadLine i WriteLine, koje povezuju C# program sa korisnikom (using System). System.Console.WriteLine("Zdravo svima!"); je isto što i Console.WriteLine("Zdravo svima!");

Page 7: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Tekstualna datoteka

U .NET okruženju klase za rad sa strimovimalocirane su u prostoru imena System.IO.

Osnovne klase u prostoru imena System.IO su: Stream (apstraktna osnovna klasa za sve strimove u

.NET okruženju), BufferedStream, FileStream, MemoryStream, GZipStream i NetworkStream.

SM2

Page 8: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Slide 7

SM2 Potrebno je uneti, u globalnom prostoru imena System, komandu: using System.IO;Suzana Marković; 13.5.2019.

Page 9: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Tekstualni strimovi

Glavne klase za rad sa tekstualnim strimovima: TextReader i TextWriter Iz njih se nasleđuju klase StreamReader i

StreamWriter. Njihove najvažnije metode su:

ReadLine() – čita jedan red teksta i vraća string ReadToEnd() – čita ceo strim do kraja i vraća string Write() – upisuje string u strim WriteLine() – upisuje jednu liniju teksta u strim.

Page 10: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Kreiranje izlaznog strima

Kreiranje/otvaranje strima znači njegovo povezivanje sa izvorom podataka.

Strim se kreira korišćenjem ključne reči new. Kreiranjem se definiše i ime tekstualnog fajla

koji se na taj način otvara. StreamWriter sveska;sveska = new StreamWriter("test.txt");

Strim za upis podataka Izlazni fajl

SM1

Page 11: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Slide 9

SM1 Podrazumevano se (ako se drugačije ne naglasi) tekstualni fajl kreira u folderu gde je cs fajl ...Projects/ConsoleApplicationX/ConsoleApplicationX/bin/DebugSuzana Marković; 7.5.2018.

Page 12: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Upis podataka u strim i zatvaranje strima

StreamWriter sveska = new StreamWriter("test.txt");sveska.WriteLine("Pozdravni string");

IzrazpozivametoduWriteLine nastrimu sveska dabiseupisaotekst“Pozdravnistring”unutarfajlatest.txt.

     sveska.Close();

Kadaprogramzavršisaupisompodatakaustrim,veomajevažnodaseoneksplicitnozatvorikorišćenjemmetodeClose.

Page 13: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Zatvaranje strima

Ukoliko se strim ne zatvori programski: program će verovatno moći da se završi, ali podaci

koje je korisnik bude uneo neće biti u fajlu; ako program koristi strim za povezivanje sa fajlom,

drugi programi neće moći da ga koriste; neće biti moguće promeniti ime fajlu ili njegovu

lokaciju; otvoren strim troši mali, ali značajan deo resursa

operativnog sistema.

Page 14: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Čitanje podataka iz fajla

Kod čitanja podataka iz fajla program će kreirati strim koji će obaviti to čitanje.

Koristi se strim StreamReader.

StreamReader knjiga = new StreamReader("test.txt");            string red = knjiga.ReadLine();            Console.WriteLine(red);            knjiga.Close();

Strim za čitanje podataka

Page 15: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Čitanje celog fajla

StreamReader knjiga = new StreamReader("test.txt");            while (knjiga.EndOfStream == false)            {                string red = knjiga.ReadLine();                Console.WriteLine(red);            } knjiga.Close();

Obratite pažnju na predstavu naših karakterističnih slova u datoteci!!!

Page 16: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Putanja fajla

Ako se prilikom otvaranja nekog fajla ne da lokacija foldera (kao što je dato u slučaju fajla test.txt), sistem tada podrazumeva da se fajl nalazi u istom folderu u kome se nalazi program koji se izvršava.

Da bi se koristio fajl u nekom drugom folderu (što je i najčešći slučaj), tada se imenu fajla moraju dodati i informacije o njegovoj putanji.

 string putanja = @"C:\Test\test.txt";

Page 17: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Putanja fajla

string putanja;putanja = @"C:\Test\test.txt";StreamWriter sveska;sveska = new StreamWriter(putanja);sveska.WriteLine("Pozdravni string:");sveska.WriteLine("Zdravo svima!");sveska.Close();

Page 18: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Premeštanje, kopiranje i brisanje fajla

Premeštanje/kopiranje tekstualnog fajla sa jedne lokacije na drugu, kao i brisanje fajla, obavlja se posredstvom klase System.IO.File i odgovarajuće metode: Move - premeštanja fajla sa jedne na drugu putanju Copy – kopiranje fajla sa jedne na drugu putanju Delete – brisanje fajla

Page 19: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Kreiranje, premeštanje, brisanje i izlistavanje foldera

Kreiranje, premeštanje, brisanje i izlistavanjefoldera ostvaruje se posredstvom klaseSystem.IO.Directory i odgovarajuće metode: CreateDirectory - Kreiranje foldera Move - Premeštanje foldera Delete - Brisanje foldera Listanje svih fajlova u folderu obavlja se

posredstvom metode GetFiles i foreach petlje.

Page 20: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Kreiranje, premeštanje, brisanje i izlistavanje foldera

string putanja1 = @"C:\Test\Test1";System.IO.Directory.CreateDirectory(putanja1);string putanja2 = @"C:\Test\Test2";System.IO.Directory.CreateDirectory(putanja2);Console.WriteLine("Kreirani su folderi " + putanja1+ " i " +putanja2);

System.IO.Directory.CreateDirectory(@"C:\Test\Test3");string putanja1 = @"C:\Test\Test3";string putanja2 = @"C:\Test3";Directory.Move(putanja1, putanja2);Console.WriteLine("Folder " + putanja1 + " je premešten u " + putanja2);

string putanja = @"C:\Test3";Directory.Delete(putanja);Console.WriteLine("Folder " + putanja + " je obrisan! ");

string putanja = @"C:\Test\Test2";string[] fajlovi = Directory.GetFiles(putanja);     foreach (string s in fajlovi)         {           Console.WriteLine(s);         }

Page 21: Rad sa fajlovima i folderima Tokovi (strimovi) podataka Trajno čuvanje podataka na računaru ostvaruje se korišćenjem imenovanih objekata koji se nazivaju datoteke (fajlovi). Osnovne

Premeštanje, kopiranje i brisanje fajla

string putanja1 = @"C:\Test\Test1\test1.txt";string putanja2 = @"C:\Test\Test2\test1.txt";System.IO.File.Move(putanja1, putanja2);Console.WriteLine("{0} fajl je premešten na {1}.", putanja1, putanja2);

string putanja1 = @"C:\Test\Test2\test1.txt";string putanja2 = @"C:\Test\Test1\test1.txt";File.Copy(putanja1, putanja2);Console.WriteLine("{0} fajl je kopiran na {1}.", putanja1, putanja2);

MOVE

COPY

string putanja = @"C:\Test\Test2\test1.txt";File.Delete(putanja);Console.WriteLine("{0} fajl je obrisan!", putanja);

DELETE