© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print()
© Jukka Juslin1 Ohjelmointitaito (ict1td002, 12 op) Opintojakson esittely Kevät 2008 Jukka Juslin, Raine Kauppinen Tuloksellinen Java-ohjelmointi.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI
6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 12 Periytyminen.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot Jukka Juslin © Jukka Juslin 2006.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
22. Taulukot.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
© Jukka Harju, Jukka Juslin
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Auli Jaakkola 1 Palkkatiedustelun tietomallin mukaisen tilastovastauksen luonti Tässä esimerkissä tiedosto tuotetaan excelistä csv-muotoon. 1.Oletetaan,
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Ehto- ja toistolauseet.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
1 Tulostaminen ja tiedostot. 2 Tulostaminen paperille n Tulostus voidaan tehdä esimerkiksi: –Crystal Reports -raporttigeneraattorilla –Printer-objektin.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Luku 4 Ehto- ja toistolauseet Tuloksellinen Java-ohjelmointi.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
String-vertailusta ja Scannerin käytöstä (1/2)
20. Javan omat luokat.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia.
Kuinka niitä käsitellään
Tietovirrat ja tiedostot. Anne Benson Tiedon koodaus it-järjestelmissä pienin tietoyksikkö bitti –kaksi tilaa: nolla (sähkövirtaa ei ole) yksi (sähkövirtaa.
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
1 Tietovirrat ja niiden suunnat Tietovirralla on aina suunta Tiedostoon tallentaessa käytetään OutputStream-luokasta perittyjä luokkia Tiedostosta luettaessa.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi.
22. Taulukot.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
ict1td002 - Copyright Raine Kauppinen 1 Tietovirrat  Tietovirran käsite  Tietovirtojen käyttö  Tekstitiedoston luku  Tekstitiedoston kirjoitus.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely.
2. Lisää Java-ohjelmoinnin alkeita
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi HashMap, Properties, Logger, etc Tuloksellinen Java-ohjelmointi.
Tiedostojen käsittely
Tuloksellinen Java-ohjelmointi Luku 2 Ensimmäiset ohjelmat
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Sähköpostin lähetys Java- ohjelmasta Jukka Juslin.
Anne Benson Tietovirrat ja tiedostot. Anne Benson Tiedon koodaus it-järjestelmissä pienin tietoyksikkö bitti –kaksi tilaa: nolla (sähkövirtaa ei ole)
Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.
String-vertailusta ja Scannerin käytöstä (1/2)
6. Tiedostot.
Tuloksellinen Java-ohjelmointi
Kuinka niitä käsitellään
8. Näppäimistöltä lukeminen
8. Näppäimistöltä lukeminen
Kuinka niitä käsitellään
eli oliotiedostojen käsittely
Esityksen transkriptio:

© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi

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

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

© 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

© 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

© 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”); }

© 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”); }

© 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

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

© 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)

© 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

© Jukka Juslin12 Tiedostoon lisääminen

© 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

© 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”));