DATOTEKE DATOTEKE Vrednosti u toku rada programa uvaju

  • Slides: 27
Download presentation
DATOTEKE

DATOTEKE

DATOTEKE � Vrednosti u toku rada programa čuvaju se u promenljivima, nizovima i objektima

DATOTEKE � Vrednosti u toku rada programa čuvaju se u promenljivima, nizovima i objektima i privremenog su karaktera � Da bi se vrednosti trajno sačuvale, one se mogu upisati na neki spoljašnji uređaj permanentne memorije, kaja se deli u celine koje se nazivaju datoteke. (File). � Mogu se naći na disku, DVD, fleš memoriji. .

DATOTEKE � Podaci se organizuju u Foldere, koji mogu sadržati više fajlova i podfoldera.

DATOTEKE � Podaci se organizuju u Foldere, koji mogu sadržati više fajlova i podfoldera. � Upravljanje fajlovima je bitan deo JAVE � Postoji nekoliko metoda za: � Kreiranje � Čitanje � Izmenu � Brisanje

PODELA DATOTEKA � Binarne i tekstualne � Datoteke sa sekvencijalnim pristupom i datoteke sa

PODELA DATOTEKA � Binarne i tekstualne � Datoteke sa sekvencijalnim pristupom i datoteke sa direktnim pristupom

TOK PODATAKA- DATA STREAM Ulazni tok Program Izlazni tok

TOK PODATAKA- DATA STREAM Ulazni tok Program Izlazni tok

VRSTE TOKOVA � Binarni podaci (0, 1) � Tekstualni podaci (niz znakova koji nam

VRSTE TOKOVA � Binarni podaci (0, 1) � Tekstualni podaci (niz znakova koji nam je razumljiv) � Postoji dve vrste tokova � Binarni U/I tokovi (bajtovi se neizmenjeno prenose) � Tekstualni U/I tokovi (obezbeđuju automatsko konvertovanje bajtova prilikom prenosa) � 167 � Znak po znak se unosi i konvertuje uz pomoć određene šeme � 1010 0111 (binarni)

VRSTE TOKOVA � Binarni tokovi su mnogo brži jer se ne troši vreme na

VRSTE TOKOVA � Binarni tokovi su mnogo brži jer se ne troši vreme na konverziju, ali se mnogo ređe koriste jer su nerazumljivi za ljude. � Koriste se kod BP, komunikacije između računara itd. .

DATOTEKE SA SEKVENCIJALNIM PRISTUPOM � Sekvencijalnom organizacijom su slogovi fizički smešteni jedan iza drugog

DATOTEKE SA SEKVENCIJALNIM PRISTUPOM � Sekvencijalnom organizacijom su slogovi fizički smešteni jedan iza drugog u redosledu u kojem je datoteka kreirana i u istom redosledu se mogu obrađivati. � Datoteka je sortirana po nekom ključu a čitanje se vrši u rastućem ili u opadajućem redosledu ključa dok se ne zadovolji uslov da je učitani ključ=traženi ključ.

DATOTEKE SA DIREKTNIM PRISTUPOM � Vrši se direktno čitanje na bazi vrednosti ključa, uz

DATOTEKE SA DIREKTNIM PRISTUPOM � Vrši se direktno čitanje na bazi vrednosti ključa, uz potrebu odgovarajućeg algoritma. � Svaki slog se memoriše na adresu koja se izvodi iz vrednosti ključa. � Random način je pogodan za master datoteke jer omogućava njihovo održavanje nezavisno od redosleda podataka, mada datoteku treba ipak sortirati radi uštede u vremenu obrade.

DATOTEKE � File klasa iz java. io paketa omogućava rad sa fajlovima � Kreira

DATOTEKE � File klasa iz java. io paketa omogućava rad sa fajlovima � Kreira se objekat klase File i imenuje fajl ili folder

DATOTEKE � U paketu java. io nalaze se klase za rad sa datotekama i

DATOTEKE � U paketu java. io nalaze se klase za rad sa datotekama i direktorijumima. Funkcionalnost koju omogućavaju te klase sastoji se od kreiranja, brisanja i preimenovanja datoteka i direktorijuma, čitanja iz datoteke i pisanja u datoteku, itd. � Datoteke i direktorijumi se modeluju klasom java. io. File. Objekti te klase mogu predstavljati i datoteke i direktorijume (između kojih Java, ne pravi velike razlike), ali u klasi File nema metoda za čitanje/pisanje datoteka. Ta je funkcionalnost, zbog svoje kompleksnosti, ali i univerzalnosti postupaka, modelovana u nizu drugih klasa.

KLASA FILE- SADRŽI NEKE OD METODA

KLASA FILE- SADRŽI NEKE OD METODA

KREIRANJE DATOTEKE � Da bi se kreirao fajl potrebno je koristiti create. New. File()

KREIRANJE DATOTEKE � Da bi se kreirao fajl potrebno je koristiti create. New. File() method. � Metod vraća boolean vrednost � True, ako je fajl uspešno kreiran � False, ako fajl već postoji � Neophodno je koristiti try. . . catch blok, jer je moguće da se izbaci IOException iz nekog razloga.

DATOTEKE � Treba uočiti da kreiranjem objekta tipa File nije kreirana i datoteka, već

DATOTEKE � Treba uočiti da kreiranjem objekta tipa File nije kreirana i datoteka, već samo objekat koji reprezentuje datoteku i čuva njeno ime. � Objekt tipa File pamti čitavu putanju datoteke; ako konstruktoru damo samo relativno ime datoteke (bez direktorijuma u kojem se nalazi) on će smatrati da je datoteka u tekućem direktorijumu (onom u kome se izvršava program).

DATOTEKE � Sledeći program pokazuje da objekt tipa File može predstavljati nepostojeću datoteku. �

DATOTEKE � Sledeći program pokazuje da objekt tipa File može predstavljati nepostojeću datoteku. � Postojanje datoteke ispitujemo pomoću metode exists(), dok datoteku možemo kreirati metodom create. New. File().

public static void main(String[] args) { File my. Obj = new File("fajl. Novi. txt");

public static void main(String[] args) { File my. Obj = new File("fajl. Novi. txt"); // Put datoteke System. out. println("Path = "+my. Obj. get. Absolute. Path()); // Da li datoteka postoji? System. out. println("exists() = "+my. Obj. exists()); try{ // Kreirajmo praznu datoteku. // Ako datoteka već postoji create. New. File() vraća false. if(my. Obj. create. New. File ()== false) System. out. println("Datoteka već postoji. "); } // Dužni smo obraditi catch(IOException e){ e. print. Stack. Trace(); }}}

KREIRANJE DATOTEKE

KREIRANJE DATOTEKE

KREIRANJE FAJLA U TAČNO ODREĐENOM FOLDERU

KREIRANJE FAJLA U TAČNO ODREĐENOM FOLDERU

UPISIVANJE U DATOTEKU � Koristi se klasa File. Writer, koja sadrži metod write(). �

UPISIVANJE U DATOTEKU � Koristi se klasa File. Writer, koja sadrži metod write(). � Kada se završi upisivanje, datoteka se mora obavezno zatvoriti, metodom close(). Kada se jednom zatvori datoteka se ne može koristiti za čitanje i upis, nego se ponovo mora otvoriti � Ako se ne zatvori, zatvoriće je JVM kada se završi izvršenje programa.

RAZLOZI EKSPLICITNOG ZATVARANJA DATOTEKE � Memorijski resursi su nepotrebno zauzeti da bi se radilo

RAZLOZI EKSPLICITNOG ZATVARANJA DATOTEKE � Memorijski resursi su nepotrebno zauzeti da bi se radilo sa datotekom, iako se mogu osloboditi mnogo pre završetka rada programa. �U slučaju izlaznih datoteka podaci mogu biti izgubljeni, jer se zbog efikasnosti podaci prvo upisuju u bafer, koji tek kada se popuni prebacuje podatke u datoteku, pa ako se fajl nasilno zatvori bodaci iz delimično popunjenog bafera se ne upisuju u datoteku. � Zadatak close() naredbe je upravo to da se podaci upišu iz bafera u datoteku.

UPISIVANJE U DATOTEKU File. Writer my. Writer; //da bi promenljiva važila izvan try bloka

UPISIVANJE U DATOTEKU File. Writer my. Writer; //da bi promenljiva važila izvan try bloka try{ my. Writer=new File. Writer(“filename. txt”) ……… } catch{……}

UPISIVANJE U DATOTEKU � Ako na disku ne postoji datoteka filename. txt, obrazuje se

UPISIVANJE U DATOTEKU � Ako na disku ne postoji datoteka filename. txt, obrazuje se nova i u nju se upisuju podaci. � Ako postoji prethodni sadržaj se zamenjuje novim. � Ovaj neki put neželjeni efekat se može izbeci proverom da li datoteka već postoji na disku.

ČITANJE IZ DATOTEKE- KORISTIMO SCANNER

ČITANJE IZ DATOTEKE- KORISTIMO SCANNER

ČITANJE � Postoji mnogo klasa koje se mogu koristiti ya čitanje i pisanje, koja

ČITANJE � Postoji mnogo klasa koje se mogu koristiti ya čitanje i pisanje, koja će se koristiti zavisi od verzije JAVE, šta se čita, veličine fajla. . . File. Reader, � Buffered. Reader, � Files, � Scanner, � File. Input. Stream, � File. Writer, � Buffered. Writer, � File. Output. Stream. . . . �

JOŠ NEKE METODE. . .

JOŠ NEKE METODE. . .

BRISANJE DATOTEKE- KORISTI SE DELETE() METOD

BRISANJE DATOTEKE- KORISTI SE DELETE() METOD

BRISANJE FOLDERA

BRISANJE FOLDERA