package elte.java2_utikalauz5.io; import java.io.*; /** Példa arra, hogy hogyan kell gépelt szövegből egész számokat beolvasni. @link.forrásfájl {@docRoot}/../data/io/src TypedReader.java @link.letöltés {@docRoot}/../data/io TypedReader.jar @since Java 2 Útikalauz programozóknak 1.3 */ public class TypedReader extends FilterReader { static class NotExpectedTokenException extends Exception { /** Verziószám */ private final static long serialVersionUID = 15L; public int token; public NotExpectedTokenException( int token ){ this.token=token; } } public TypedReader( Reader in ){ super(in); } public int scanInt() throws NotExpectedTokenException, IOException { StreamTokenizer st = new StreamTokenizer(in); st.ordinaryChar('/'); // nincs megjegyzésjel st.ordinaryChar('.'); // ne legyen tizedespont st.nextToken(); if ( (st.ttype==StreamTokenizer.TT_NUMBER) && (st.nval>=Integer.MIN_VALUE) && (st.nval<=Integer.MAX_VALUE) ) return (int)st.nval; // sikerült számként értelmezni else throw new NotExpectedTokenException(st.ttype); } public static void main( String[] args ) throws IOException { TypedReader in = new TypedReader(new InputStreamReader(System.in)); int sum = 0; boolean endOfInts = false; while (!endOfInts) { System.out.print("Írjon be egy számot: "); try{ sum += in.scanInt(); System.out.println(); }catch (NotExpectedTokenException e){ endOfInts=true; } } System.out.println("\nAz összeg: " + sum); } }