import java.io.*; //tiedostopalvelujen kirjasto public class Es2201 { public static void main (String[] args) throws IOException //varaudutaan virheisiin { // määritykset int projtunnus; // projektitietueen tiedot String projnimi; double kustannukset; // toiminta TiedostoUlos projektit = new TiedostoUlos(); //luo tiedosto-olio (vastaa avausta) projtunnus = Input.kluku("anna projektitunnus, nolla lopettaa"); //projtunnus loppuarvona while (projtunnus != 0) //nolla lopettaa { projnimi = Input.mjono("anna projektin nimi(yksi sana)"); //projektin muut tiedot kustannukset = Input.fluku("anna projektin kustannukset"); projektit.kirjoita (projtunnus, projnimi, kustannukset); //rivin kirjoitus projtunnus = Input.kluku("anna projektitunnus, nolla lopettaa"); } projektit.sulje(); //tiedoston sulkeminen } } class TiedostoUlos //tiedostoluokka { // määritykset FileOutputStream ulos; //tiedostokäsittelijöiden viitteet PrintWriter kirjoitin; TiedostoUlos() throws IOException //muodostin, varaudutaan virheisiin { String tnimi = pyydänimi(); //aliohjelmasta tiedostolle nimi ulos = new FileOutputStream(tnimi); //luodaan tiedostokäsittelijät kirjoitin = new PrintWriter(ulos,true); } // metodit public void kirjoita(int tunnus, String nimi, double rahat) //tietueen kirjoitusmetodi { kirjoitin.println(tunnus + " " + nimi + " " + rahat); } public void sulje() throws IOException //tiedoston sulkemismetodi { ulos.close(); } String pyydänimi() //aliohjelma, jolla käyttäjältä pyydetään tiedostolle nimi { String nimi = Input.mjono("anna tiedoston nimi (koko polku)"); return nimi; } }