Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.

Samankaltaiset esitykset


Esitys aiheesta: "© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi."— Esityksen transkriptio:

1 © Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi

2 © Jukka Juslin2 Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä.Creative Commons Attribution-ShareAlike 1.0 -lisenssillä

3 © Jukka Juslin3 Tiedostot Tiedosto tietovirtana Tiedostosta luku Tiedostoon kirjoitus ja tiedoston luonti Tiedoston päivitys Tiedosto ja tietorakenteet (CSV) Tiedoston poisto

4 © Jukka Juslin4 Tiedosto tietovirtana Jotta ohjelma olisi hyödyllinen on sen yleensä talletettava tietoa johonkin Eräs tietyssä mielessä yksinkertainen tapa on tallettaa tietoa on tiedosto –Esimerkiksi useimmat tietokonepelit käyttävät paljon tiedostoja hyväkseen Muita ns. tietovirtoja ovat esimerkiksi www-sivun lukeminen (Javalla helppoa) tai tietokannat

5 © Jukka Juslin5 Tiedosto tietovirtana Oleellista tiedostoja koskien on tietää oletuspolku, jossa tiedostojen kanssa operoidaan Eclipsen kanssa oletuspolku on kyseinen projektin hakemistotaso siinä työtilassa, missä ollaan

6 © Jukka Juslin6 Tiedostosta luku Tiedostosta luku onnistuu helpoiten Scanner-luokan avulla (seuraava olettaa että tiedostossa on yksi rivi): import java.io.File; import java.util.Scanner; … try { Scanner scan = new Scanner(new File(”tunnit.txt”)); while(scan.hasNext()) { String rivi = scan.nextLine(); } } catch(Exception ex) { System.out.println(”Tiedostoa ei löydy”); }

7 © Jukka Juslin7 Tiedostoon kirjoitus Tiedostoon kirjoitus onnistuu PrintWriter-luokkaa käyttäen (seuraavassa kirjoitamme Stringin tiedostoon): try { PrintWriter ulosKirjoitus = new PrintWriter(”tiedosto.txt”); ulosKirjoitus.print(”JaadaJaada\n”); ulosKirjoitus.close(); } catch(IOException ex) { System.out.println(”Tiedostoon kirjoitus ei onnistunut”); }

8 © Jukka Juslin8 Tiedostojen käytöstä (CSV) Yksi yleisimpiä tiedostojen käyttöön liittyen ovat CSV-tiedostot (Comma Separated Values) CSV-tiedostoissa yhden kentän erotinmerkkinä on ; (puolipiste) ja yksi rivi loppuu \n (rivinvaihtomerkkiin) CSV tiedoston yhden rivin käsittely käy suhteellisen kätevästi esimerkiksi tekemällä rivin kenttien määrän mukaisen taulukon ja splittaamalla (käyttämällä String-luokan split- metodia) siihen rivin kentät

9 © Jukka Juslin9 Tiedoston tuhoaminen Tiedoston tuhoaminen onnistuu File-luokan metodilla delete() Esimerkiksi: File tiedosto = new File(”tiedosto.txt”); tiedosto.delete();

10 © Jukka Juslin10 Tiedostoon lisääminen Monesti halutaan luonnollisesti lisätä tiedoston loppuun esimerkiksi rivejä tuhoamatta alkuperäistä tiedostoa –Tällaista toimintoa kutsutaan nimellä append Appendauksen voisi tehdä lukemalla olemassaolevan tiedoston ArrayListiin ja kirjoittamalla sieltä muistissa olevat, mutta tämä on kohtuuttoman työlästä ja vaikeaa Linux käyttöjärjestelmissä append tekstitiedostoon suoritetaan komennolla >> (ohaa tietovirtaa)

11 © Jukka Juslin11 Tiedostoon lisääminen Appendaus java-ohjelmassa käy antamalla FileWriter oliolle toisena parametrinä true, jos halutaan appendata (katso myös API:sta, shift+F2) FileWriter olio annetaan parametrinä PrintWriter oliolle Seuraavalla kalvolla esimerkki

12 © Jukka Juslin12 Tiedostoon lisääminen

13 © Jukka Juslin13 Tiedostot ja properties-konfiguraatio Properties (tiedoston loppupääte.properties) tarkoittaa esim. konfiguraatiotietojen tallentamista tiedostoon Tallennusmuoto on seuraavanlaista (oppikirjan sivu 163): tmp = C:/TEMP server = norsu.firma.fi Tämänmuotoiset avain-arvoparit on kätevintä lukea HashMap (esim. PHP:ssä vain Hash) tietorakenteeseen ja siihen onkin Javassa valmis mekanismi

14 © Jukka Juslin14 Properties alkuarvojen lukeminen Alkuarvojen lukeminen properties-tiedostosta menee seuraavaan tapaan (oppikirjan sivu 164): import java.util.Properties; import java.io.*; … // alkuarvojen lukeminen Properties alkuarvot = new Properties(); File propsiTiedosto = new File(”jukan.properties”); FileInputStream in = new FileInputStream(propsiTiedosto); alkuarvot.load(in); // alkuarvojen tulostaminen System.out.println(alkuarvot.get(”tmp”)); System.out.println(alkuarvot.get(”server”));


Lataa ppt "© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi."

Samankaltaiset esitykset


Iklan oleh Google