Helsingin yliopisto / Tietojenkäsittelytieteen laitos
Copyright © 2005 Arto Wikla. Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin, kuten kaupallisilla tai muilla kursseilla, on kielletty.

Syötteiden lukeminen ennen 1.5-versiota

(Muutettu viimeksi 9.5.2005)

Lukemista

Koska Javassa lukeminen kielen perusvälineillä on melko mutkikasta - ohjelmoija joutuu itse mm. varautumaan tietojen syötössä tapahtuviin virheisiin - olen laatinut kurssin käyttöön yksinkertaisen apuvälineen, luokan Lue.

Yksi tapa saada tämä luokka käyttöön on kopioida tiedosto Lue.java siihen hakemistoon, jossa ohjelmiaan laatii. Ennen luokan käyttöä se on tietenkin käännettävä class-tiedostoksi (kts. luku 2.1). Joustavampia tapoja opitaan myöhemmin!

Huom: Luokka Lue on tarkoitettu käytettäväksi Javan version 1.1.3 yhteydessä. Jos teet ohjelmiasi versiolla 1.0.2, käytä Lue-luokan sijaan luokkaa Lue102 (Lue102.java). Lue102 kääntyy ja toimii myös Java-versiossa 1.1.3 vaikka kääntäjä vähän varoitteleekin.

Lukuapuvälineiden toteutusta ei tietenkään vielä tarvitse ymmärtää, mutta kyllä niitä jo katsella saa. Kukapa ei olisi utelias...

Luokassa Lue on neljä lukemisen välinettä:

  1. Lue.rivi() lukee kokonaisen rivin String-tyyppisenä
  2. Lue.kluku() lukee kokonaisluvun (int)
  3. Lue.dluku() lukee liukuluvun (double)
  4. Lue.merkki() lukee rivin ja palauttaa arvonaan rivin ensimmäisen merkin. Loppurivi ohitetaan. Tyhjästä rivistä saadaan välilyönti.
(Viimeisen metodin palauttaman arvon tyyppi, merkkityyppi opitaan myöhemmin.)

Kaikki metodit ns. palauttavat arvonaan luetun. Niitä siis käytetään lausekkeina eli niillä itsellään on arvo:

    int luku1;
    double luku2;
    String mjono;

    luku1 = Lue.kluku();
    luku2 = Lue.dluku();
    mjono = Lue.rivi();

Huom: Nuo tyhjät sulkeet operaatioiden yhteydessä ovat välttämättömät. Operaatiot on toteutettu luokan Lue ns. metodeina. Metodeista pian lisää.

Huom: Jos käytät Lue102-luokkaa, operaatiot kirjoitetaan muodossa Lue102.rivi(), jne.

Huom: Javassa on myös tulostusoperaatio

   System.out.flush();
jolla ns. tulostuspuskuri saadaan kirjoitettua tulostuslaitteelle. Jos käytät Lue102-luokkaa System.out.print(...) -operaation jälkeen, lisää heti print-operaation jälkeen tuo 'flush', jotta saat tekstin näkyviin.


Takaisin luvun 2 sisällysluetteloon.