Nyt voimme toteuttaa "tuotetiedoston" lukevan ohjelman Javan tietovirroilla ja funktioiden erotaEx avulla:
import fi.jyu.mit.ohj2.*;
import java.io.*;
/**
* Ohjelmalla luetaan tuotetiedosto ja tulostetaan tuotteet
* @author Vesa Lappalainen
* @version 1.0, 21.02.2003
*/
public class LueTuote {
public static boolean tulosta_tuotteet() {
String srivi,pala;
String nimike; double hinta; int kpl;
BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat");
if ( fi == null ) return false;
System.out.println(); System.out.println(); System.out.println();
System.out.println("-------------------------------------------");
try {
while ( ( srivi = fi.readLine() ) != null ) {
StringBuffer rivi = new StringBuffer(srivi);
try {
nimike = Mjonot.erotaEx(rivi,'|',"");
hinta = Mjonot.erotaEx(rivi,'|',0.0);
kpl = Mjonot.erotaEx(rivi,'|',0);
} catch (NumberFormatException ex) {
System.out.println("Virhe: " + ex.getMessage());
continue;
}
System.out.println(Mjonot.fmt(nimike,-20) +" " + Mjonot.fmt(hinta,7,0) +
Mjonot.fmt(kpl,4));
}
} catch (IOException ex) {
System.out.println("Vikaa tiedostoa luettaessa");
} finally {
try {
fi.close();
} catch (IOException ex) {
System.out.println("Ongelmia tiedoston sulkemisessa");
}
}
System.out.println("-------------------------------------------");
System.out.println(); System.out.println(); System.out.println();
return true;
}
public static void main(String[] args) {
if ( !tulosta_tuotteet() ) System.out.println("Tuotteita ei saada luetuksi");
}
}
Ohjelma tulostaa:
------------------------------------------- Volvo 12300 1 Audi 55700 2 Saab 1500 4 Volvo 123400 1 -------------------------------------------