1 import java.io.*;
2 import fi.jyu.mit.ohj2.*;
3
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