Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

17.5 Lukeminen ja paloittelu

Nyt voimme toteuttaa "tuotetiedoston" lukevan ohjelman Javan tietovirroilla ja funktioiden erotaEx avulla:

tiedosto\LueTuote.java - esimerkki tiedoston lukemisesta

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


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys