import java.util.*; import java.io.*; import fi.jyu.mit.ohj2.Mjonot; /** * Lukujen lukeminen tiedostosta Scanner-luokkaa käyttäen * @author Vesa Lappalainen * @version 1.0, 05.03.2007 */ public class Tied_ka_scanner2 { public static class ScannerF implements Iterable { private Scanner scanner; public ScannerF(String filename) throws FileNotFoundException { scanner = new Scanner(new File(filename)); } public Iterator iterator() { return scanner; } public void close() { scanner.close(); } } public static void main(String[] args) { ScannerF fi; try { // Avataan tiedosto lukemista varten fi = new ScannerF("luvut.dat"); } catch (FileNotFoundException ex) { System.out.println("Tiedosto ei aukea!"); return; } double summa=0; int n=0; try { double luku; for (String s:fi ) { try { luku = Double.parseDouble(s); summa += luku; n++; } catch (NumberFormatException ex) { } } } finally { fi.close(); } double ka = 0; if ( n > 0 ) ka = summa/n; System.out.println("Lukuja oli " + n + " kappaletta."); System.out.println("Niiden summa oli " + Mjonot.fmt(summa,4,2)); System.out.println("ja keskiarvo oli " + Mjonot.fmt(ka,4,2)); } }