All pastes #673354 Raw Edit

Stuff

public text v1 · immutable
#673354 ·published 2007-08-28 10:29 UTC
rendered paste body
Kierros 9 - Harjoitus 4
TekstitiedostonIteroija
Tavoitteet, oppimateriaali ja rivimäärä
Käsiteltävät asiat: tekstitiedoston lukeminen, rajapinnat ja varattu sana implements. Iteraattorit.
Opetusmoniste: Rajapinnoista Opetusmoniste: Rivejä malliratkaisussa: 184 (TekstitiedostonIteroijassa 145, TekstitiedostonLukijassa 39)
Tehtävän määrittely

Voit ladata valmiin Eclipse-projektin tähän tehtävään (TekstitiedostonIteroija.zip) sivun oikeasta palkista.

Tässä tehtävässä harjoitellaan tekstitiedoston käsittelyä, etenkin tekstitiedoston lukemista. Kirjoita ensin luokka TekstitiedostonIteroija, jota käytät tässä tehtävässä tekstitiedostojen lukemiseen. Luokan TekstitiedostonIteroija tulee toteuttaa rajapinta Iterator. Saat käyttöösi ainoastaan luokan TekstitiedostonIteroija javadoc-dokumentin, jonka pohjalta luokka tulee toteuttaa.

Kirjoita myös pääohjelmaluokka TekstitiedostonLukija, joka käyttää tekemääsi luokkaa TekstitiedostonIteroija tekstitiedostojen lukemiseen. Ohjelma saa käynnistettäessä kaksi parametria, joista ensimmäinen on luettava tiedosto, ja toinen on yhdellä kerralla luettavien rivien lukumäärä (sivutus). Jos käyttäjä haluaa lukea tiedostoa porssi.txt 10 riviä kerrallaan, hän kirjoittaa:
java TekstitiedostonLukija porssi.txt 10

Pääohjelma lukee tekstitiedostoa TekstitiedostonIteroija-luokan avulla niin kauan, kunnes joko tekstitiedosto päättyy tai käyttäjä syöttää jotain muuta enterin lisäksi kts. esimerkkiajot. Aina kun yksi sivu tekstiä on luettu, tulostaa pääohjelma tekstin:
Tiedosto testi.txt, (pelkkä enter jatkaa)

Virheiden käsittely: (katso myös esimerkkiajot)

    * Parametreja tulee olla kaksi kappaletta. Jos näin ei ole, ohjelma tulostaa lyhyen käyttöohjeen.
    * Toisen parametrin tulee olla kokonaisluku. Jos näin ei ole, tulostetaan virheilmoitus.
    * Jos tiedostoa ei löydy, pääohjelman tulee käsitellä virhe ja tulostaa virheilmoitus. 

Testeissä käytetyt tekstitiedostot: testi.txt ja porssi.txt.
Virhetapauksien esimerkkiajot

java TekstitiedostonLukija
Anna vain kaksi parametria!
1. Parametri kertoo luettavan tiedoston.
2. Parametri kerralla luettavien rivien lukumäärän (0 on vakio).
[ohjelman suoritus päättyy]

java TekstitiedostonLukija testi.txt a
2. Parametri ei ollut kokonaisluku!
[ohjelman suoritus päättyy]

java TekstitiedostonLukija olematon.txt 4
Tiedostoa olematon.txt ei löytynyt!
[ohjelman suoritus päättyy]

Esimerkkiajot

java TekstitiedostonLukija testi.txt 5
1. 
2.
3.
4.
5.
Tiedosto testi.txt, (pelkkä enter jatkaa)
6.
7.
8.
9.
10.
Tiedosto testi.txt, (pelkkä enter jatkaa)
11.
12.
13.
14.
15.
Tiedosto testi.txt, (pelkkä enter jatkaa)
16.
17.
18.
Tiedosto testi.txt, (pelkkä enter jatkaa)
[ohjelman suoritus päättyy]

java TekstitiedostonLukija porssi.txt 0
ELISA OYJ PÖRSSITIEDOTE 29.4.2004 KLO 8.00
 
ELISA OYJ:N OSAVUOSIKATSAUS TAMMI-MAALISKUU 2004
 
Elisan vertailukelpoinen liikevaihto laski hieman. Tulos ennen
satunnaiseriä ja veroja parani selvästi. Markkinatilanne oli
alkuvuonna hyvin haasteellinen, ja kilpailu kiristyi erityisesti
matkaviestinnässä.
 
Tammi-maaliskuussa Elisan tunnusluvut olivat:
 
Tuloslaskelma                 1-3/2004   1-3/2003    Pro forma
miljoonaa euroa                                      1-3/2003*
Liikevaihto                        333        371          339
Käyttökate                         119         85           86
Liikevoitto                         59          7           17
Tulos ennen satunnaiseriä                                     
ja veroja                           51         -5            6
Tulos/osake, euroa                0,23      -0,06             
Investoinnit                        43         40           36
Tiedosto porssi.txt, (pelkkä enter jatkaa)
 
Rahoitusasema                 1-3/2004   1-3/2003         2003
Nettovelka, milj. euroa            587        767          654
Omavaraisuusaste, %                 44         38           40
Kassavirta investointien                                      
jälkeen                             19        -10          105
 
*Ilman Saksan liiketoimintaa
 
Markkinatilanne
 
Kilpailutilanne jatkui kireänä. Matkaviestintäliiketoiminnassa
hintaeroosio jatkui ja liittymien käyttö kasvoi.
Palveluoperaattorimarkkina jakaantui kahteen pääsegmenttiin:
Perinteisissä täyden palvelun liittymissä Elisa säilytti vahvan
asemansa. Ns. halpaliittymämarkkinassa uudet toimijat lisäsivät
markkinaosuuttaan. Elisa lanseerasi tähän segmenttiin uudet
liittymät. Kiinteän verkon liiketoiminnassa laajakaistaliit-
tyminen kasvu oli edelleen voimakasta ja perinteisten 
liittymien määrä pieneni.
Tiedosto porssi.txt, (pelkkä enter jatkaa)q
[ohjelman suoritus päättyy]

Värikoodit:
Sininen: Käyttäjän syöte
Vihreä: Ohjelman tuloste
Punainen: Erityishuomautus