1   import java.io.*;
2   import fi.jyu.mit.ohj2.*;
3   /**
4    * Esimerkki oliosta joka käsittelee tiedostoa
5    * @author Vesa Lappalainen
6    * @version 1.0, 09.03.2003
7    */
8   public class LueRek {
9   
10    static public class Tuote {
11      private String nimike = "";
12      private double hinta = 0.0;
13      private int kpl = 0;
14  
15      public Tuote() {}
16      public Tuote(String rivi) { parse(rivi); }
17  
18      public void parse(String s) throws NumberFormatException {
19        StringBuffer sb = new StringBuffer(s);
20        nimike = Mjonot.erotaEx(sb,'|',nimike);
21        hinta  = Mjonot.erotaEx(sb,'|',hinta);
22        kpl    = Mjonot.erotaEx(sb,'|',kpl);
23      }
24  
25      public String toPrintString() {
26        return Mjonot.fmt(nimike,-20) + " " + Mjonot.fmt(hinta,7,0) +
27               Mjonot.fmt(kpl,4);
28      }
29  
30    }
31  
32    static public class Tuotteet {
33      private String nimi = "";
34  
35      public Tuotteet(String nimi) { this.nimi = nimi; }
36  
37      public boolean tulosta(OutputStream os) {
38        PrintStream out = Tiedosto.getPrintStream(os);
39        BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat");
40        if ( fi == null ) return false;
41  
42        out.println(); out.println(); out.println();
43        out.println("-------------------------------------------");
44  
45        try {
46          String rivi;  Tuote tuote;
47          while ( ( rivi = fi.readLine() ) != null ) {
48            try {
49              tuote = new Tuote(rivi);
50            } catch (NumberFormatException ex) {
51              System.err.println("Virhe: " + ex.getMessage());
52              continue;
53            }
54            out.println(tuote.toPrintString());
55          }
56        } catch (IOException ex) {
57          System.err.println("Vikaa tiedostoa luettaessa");
58        } finally {
59          try {
60            fi.close();
61          } catch (IOException ex) {
62            System.err.println("Ongelmia tiedoston sulkemisessa");
63          }
64        }
65  
66  
67        out.println("-------------------------------------------");
68        out.println(); System.out.println(); System.out.println();
69  
70        return true;
71      }
72  
73    }
74  
75    public static void main(String[] args)  {
76      Tuotteet tuotteet = new Tuotteet("tuotteet.dat");
77      if ( !tuotteet.tulosta(System.out) ) {
78        System.err.println("Tuotteita ei saada luetuksi");
79      }
80    }
81  }
82  
83