(17 pistettä)
(18 pistettä)
Luokassa Merkkitiedosto ei ole varauduttu poikkeuksiin! Konstruktorin ja aksessorin kutsuja joutuu siis itse käsittelemään poikkeukset!
Rivitiedosto-olion avulla tiedostoa voidaan lukea (tuttuun tapaan) riveittäin. Kukin rivi saadaan siis String-oliona, jossa ei ole mukana merkkitiedostossa esiintyvää rivin loppumerkkiä '\n'.
Rivitiedoston rivit luetaan aksessorilla public String lueRivi(), joka palauttaa arvonaan tiedoston seuraavan rivin.
Kun tiedosto on loppu, lueRivi palauttaa arvon null.
Poikkeukset pitää käsitellä luokassa Rivitiedosto siten, että sen ilmentymien käyttäjän ei tarvitse kantaa niistä huolta: Jos Merkkitiedosto-olion luonti epäonnistui, lueRivi()-metodi palauttaa alusta alkaen arvon null. Jos lueMerkki()-metodin kutsu johtaa poikkeukseen, lueRivi()-metodi palauttaa arvon null. Rivitiedosto-olion käyttäjälle siis alunperin rikkinäinen tai kokonaan puuttuva tiedosto näyttää tiedostolta, jossa ei ole lainkaan rivejä Kesken kaiken rikkoutuva tiedosto näyttää vain loppuvan.
Huom: Riittää että Rivitiedosto käsittelee Merkkitiedoston aiheuttamat poikkeukset vain kaikkein yleisimmällä tasolla, Exception-poikkeuksina.
Huom: Luokka Merkkitiedosto siis on käytettävissä, älä ihmeessä sitä enää ohjelmoi!
(18 pistettä)