import java.io.*; //kirjasto public class Ph2204 { public static void main (String[] args) throws IOException { // määritykset Lukutietue tietue; //viite tietueeseen // toiminta Plue luvut = new Plue();//luo tiedosto-olio tietue = luvut.lue(); //lue ja tulosta tietue kerrallaan while (Plue.loppu == false) { System.out.println(tietue.kanta + " " + tietue.ekspo + " " + tietue.potens); tietue = luvut.lue(); } luvut.sulje(); //sulje tiedosto } } class Lukutietue //tietueluokka { public int kanta; public int ekspo; public long potens; } class Plue //tiedostoluokka { // Määritykset static boolean loppu = false; //true, kun tiedosto loppu FileInputStream sisään; //viitteet tiedostokäsittelijöihin InputStreamReader ilukija; BufferedReader lukija ; Lukutietue p; //viite tietueeseen // muodostin Plue() throws IOException { String tnimi = pyydänimi(); //tiedoston nimi sisään = new FileInputStream(tnimi); //luo tiedostokäsittelijät ilukija = new InputStreamReader(sisään); lukija = new BufferedReader(ilukija); } // muut metodit public Lukutietue lue() throws IOException //tietueen lukumetodi { String rivi; p = new Lukutietue(); //luodaan tietueolio rivi = lukija.readLine(); //lue tietue if (rivi != null) //jos tietue löytyi pura(rivi); //pura se else loppu = true; //jollei, eof return(p); //palauta viite tietueeseen } public void sulje()throws IOException //suljemetodi { sisään.close(); } void pura(String jono) //tietueen purkumetodi - sovellettu esiemrkkiä { // määritykset String osajono=""; //purkamisen apumuuttuja int paikka1, paikka2; //tyhjän paikat rivillä // toiminta paikka1 = jono.indexOf(' '); osajono = jono.substring(0,paikka1); p.kanta = Integer.valueOf(osajono).intValue(); paikka2 = jono.indexOf(' ', paikka1+1); osajono = jono.substring(paikka1 + 1,paikka2); p.ekspo = Integer.valueOf(osajono).intValue(); osajono = jono.substring(paikka2+1); p.potens = Long.valueOf(osajono).longValue(); } String pyydänimi() //tiedoston nimenpyyntömetodi { String nimi = Input.mjono("anna tiedoston nimi (koko polku)"); return nimi; } }