8.1 8. Tiedostot. 8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.

Slides:



Advertisements
Samankaltaiset esitykset
Minimaalinen Java-ohjelma •Kaikki ohjelmakoodi on luokkamäärityksen sisällä •Ohjelma käynnistyy ”public static void main(String[] args)”-metodista •System.out.print()
Advertisements

6. Metodit.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
22. Taulukot.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
© 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.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
20. Javan omat luokat.
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.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
22. Taulukot.
Poikkeukset Yleistä Virheeseen varautuminen tarkoittaa sitä, että ohjelmoija huomioi koodia kirjoittaessaan ajonaikaisen virheen mahdollisuuden.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
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Ä.
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
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.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
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)
16. Javan omat luokat Sisällys Johdanto. Object -luokka: − toString -, equals -, clone - ja getClass -metodit. Comparable -rajapinta: − compareTo.
5. Kapselointi.
6. Tiedostot.
Poikkeustenkäsittelylohkot try-catch
2. Taulukot.
14. Poikkeukset.
Kuinka niitä käsitellään
17. Javan omat luokat.
8. Näppäimistöltä lukeminen
4. Komentoriviparametrit
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
7. Näytölle tulostaminen
19. Tietovirrat.
8. Näppäimistöltä lukeminen
Kuinka niitä käsitellään
2. Taulukot.
3. Komentoriviparametrit
13. Pakkaukset.
16. Javan omat luokat.
14. Poikkeukset.
7. Näytölle tulostaminen
Tiedon tulostaminen/kirjoittaminen ”WriteLine”
14. Poikkeukset.
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

Tiedostot

8.2 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen.

8.3 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan käyttää myös ohjelmasta käsin. Tutustutaan tekstitiedostojen lukemiseen ja kirjoittamiseen java.io -pakkauksen luokkien avulla. − Javan versiosta 1.5 alkaen käytettävissä myös java.util - pakkauksen Scanner - ja Formatter -luokat. − import java.io. * ; (tai import java.util. * ;). Lukeminen ja kirjoittaminen tapahtuu vaiheittain: avataan, luetaan tai kirjoitetaan, suljetaan.

8.4 Avaaminen lukemista varten Tiedoston avaaminen tarkoittaa yleisesti syötevirran liittämistä tiedostosta ohjelmaan. Javassa syötevirta avataan esimerkiksi luomalla FileInputStream -luokan olio. Yleisesti: FileInputStream olionNimi = new FileInputStream(tiedostonNimi); Esimerkiksi: FileInputStream syotevirranNimi = new FileInputStream(″in.txt″);

8.5 Lukeminen Syötevirrasta lukemiseen tarvitaan olio InputStreamReader -luokasta. Esimerkiksi: InputStreamReader lukijanNimi = new InputStreamReader(syotevirranNimi); Usein on kätevämpää käyttää hienostuneempaa lukijaa. Tällaisen tarjoaa BufferedReader -luokka. Esimerkiksi: BufferedReader puskuroituLukija = new BufferedReader(lukijanNimi);

8.6 Lukeminen Kun syötevirtaan on saatu liitettyä BufferedReader - lukija, voidaan tekstitiedostoa lukea riveittäin readLine -operaation avulla. Ready -operaatio kertoo voidaanko lukea uusi rivi. Esimerkiksi: while (puskuroituLukija.ready()) { String rivi = puskuroituLukija.readLine(); System.out.println(rivi); }

8.7 Rivien käsittely Usein yhdellä rivillä on useampia jollakin merkillä (esimerkiksi pilkku tai välilyönti) erotettuja tietoja, jotka voivat vieläpä olla eri tyyppisiä. String -luokan split -operaatio on tässä tilanteessa hyödyllinen – se pilkkoo rivi osiinsa. Esimerkiksi: String rivi = "this is a test"; String[] osat = rivi.split("[ ]"); for ( int i = 0; i < osat.length; i++) System.out.println(osat[i]);

8.8 Sulkeminen lukemisen jälkeen Tiedoston lukemisen jälkeen siihen liitetty syötevirta suljetaan close -operaatiolla. Esimerkiksi: puskuroituLukija.close(); Tiedoston avaamisen, lukemisen ja/tai sulkemisen yhteydessä voi tapahtua poikkeus. Tämän vuoksi Java pakottaa sulkemaan useimmat tiedostonkäsittelyyn liittyvät lauseet try - catch - lauseen sisään.

8.9 Esimerkki import java.io.*; public class Lukeminen { public static void main(String[] args) { String TIEDNIMI = "in.txt"; try { FileInputStream syotevirta = new FileInputStream( TIEDNIMI ); InputStreamReader lukija = new InputStreamReader(syotevirta); BufferedReader puskuroituLukija = new BufferedReader(lukija); while (puskuroituLukija.ready()) { String rivi = puskuroituLukija.readLine(); System.out.println(rivi); } puskuroituLukija.close(); } catch (FileNotFoundException e) { System.out.print("Tiedosto hukassa!"); } catch (IOException e) { System.out.print("Lukuvirhe!"); }

8.10 Avaaminen kirjoittamista varten 1)Luodaan tiedosto-olio File -luokasta: File tiedostoOlionNimi = new File (tiedostonNimi); 2)Liitetään tulostusvirta ohjelmasta tiedostoon: FileOutputStream virtaOlionNimi = new FileOutputStream (tiedostoOlionNimi);

8.11 Kirjoittaminen Tulostusvirtaan kirjoittamiseen tarvitaan kirjoittajaolio PrintWriter -luokasta. Yleisesti: PrintWriter kirjoittajaOlionNimi = new PrintWriter (virtaOlionNimi, true ); Kirjoittaminen tapahtuu PrintWriter -luokan print - ja println -operaatioiden avulla. Nämä operaatiot on kuormitettu kuten System. out - attribuutin kautta kutsuttavat operaatiot, jotka tulostavat esimerkiksi lukuja ja merkkijonoja.

8.12 Sulkeminen kirjoittamisen jälkeen Tiedoston kirjoittamisen jälkeen siihen liitetty syötevirta suljetaan kirjoittajan close -operaatiolla. Myös kirjoittamisen yhteydessä voi tapahtua poikkeus: tarvitaan poikkeuksen käsittelyä try - catch -lauseen avulla.

8.13 Tiedostot: esimerkki import java.io.*; public class Kirjoittaminen { public static void main(String [] args) { final String TIEDNIMI = "out.txt"; final int N = 10; try { // Luodaan tiedosto-olio File tiedosto = new File(TIEDNIMI); // Luodaan tulostusvirta ja // liitetään se tiedostoon FileOutputStream tulostusvirta = new FileOutputStream(tiedosto); // Luodaan virtaan kirjoittaja PrintWriter kirjoittaja = new PrintWriter(tulostusvirta, true); // Kirjoitetaan tiedostoon for ( int i = 0; i < N; i++) kirjoittaja.println("Heippa " + i); // Suljetaan tiedosto kirjoittaja.close(); } catch (IOException e) { System.out.println(e); }