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 -------------------------------------------