001    import java.io.*;
002    import fi.jyu.mit.ohj2.*;
003    /**
004     * Esimerkki oliosta joka käsittelee tiedostoa
005     * @author Vesa Lappalainen
006     * @version 1.0, 09.03.2003
007     */
008    public class LueRek {
009    
010      static public class Tuote {
011        private String nimike = "";
012        private double hinta = 0.0;
013        private int kpl = 0;
014    
015        public Tuote() {}
016        public Tuote(String rivi) { parse(rivi); }
017    
018        public void parse(String s) throws NumberFormatException {
019          StringBuffer sb = new StringBuffer(s);
020          nimike = Mjonot.erotaEx(sb,'|',nimike);
021          hinta  = Mjonot.erotaEx(sb,'|',hinta);
022          kpl    = Mjonot.erotaEx(sb,'|',kpl);
023        }
024    
025        public String toPrintString() {
026          return Mjonot.fmt(nimike,-20) + " " + Mjonot.fmt(hinta,7,0) +
027                 Mjonot.fmt(kpl,4);
028        }
029    
030      }
031    
032      static public class Tuotteet {
033        private String nimi = "";
034    
035        public Tuotteet(String nimi) { this.nimi = nimi; }
036    
037        public boolean tulosta(OutputStream os) {
038          PrintStream out = Tiedosto.getPrintStream(os);
039          BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat");
040          if ( fi == null ) return false;
041    
042          out.println(); out.println(); out.println();
043          out.println("-------------------------------------------");
044    
045          try {
046            String rivi;  Tuote tuote;
047            while ( ( rivi = fi.readLine() ) != null ) {
048              try {
049                tuote = new Tuote(rivi);
050              } catch (NumberFormatException ex) {
051                System.err.println("Virhe: " + ex.getMessage());
052                continue;
053              }
054              out.println(tuote.toPrintString());
055            }
056          } catch (IOException ex) {
057            System.err.println("Vikaa tiedostoa luettaessa");
058          } finally {
059            try {
060              fi.close();
061            } catch (IOException ex) {
062              System.err.println("Ongelmia tiedoston sulkemisessa");
063            }
064          }
065    
066    
067          out.println("-------------------------------------------");
068          out.println(); System.out.println(); System.out.println();
069    
070          return true;
071        }
072    
073      }
074    
075      public static void main(String[] args)  {
076        Tuotteet tuotteet = new Tuotteet("tuotteet.dat");
077        if ( !tuotteet.tulosta(System.out) ) {
078          System.err.println("Tuotteita ei saada luetuksi");
079        }
080      }
081    }
082