/***  LETTURA DA STANDARD INPUT MEDIANTE  BUFFERED READER
      ----------------------------------------------------


Scrivere un programma che legge da standard input una sequenza di numeri interi,
uno per linea, e stampa il numero degli interi letti e la loro somma.


--------------

In questo caso l'uso di un InputStreamReader e' scomodo in quanto occorre
leggere l'input carattere per carattere (provare a farlo per esercizio).



BufferedReader
--------------

La classe

  
  java.io.BufferedReader


permette di leggere una linea di input per volta.
Infatti, la classe dispone del metodo

   public String readLine()  throws IOException

 
che  restituisce una linea di input oppure null se si e' raggiunta la fine dell'input
(vedere la documentazione dettagliata). 

Il metodo puo' sollevare un'eccezione controllata di tipo IOException in caso di errore.
Dato che non vogliamo gestirla, occorre scrivere


   public static void main(...) throws IOException



Il costruttore di  classe  BufferedReader ha per parametro un Reader.

Per creare un  BufferedReader associato allo standard input occorre  fare
la chiamata

   new BufferedReader(new InputStreamReader(System.in))






ESEMPI
------

Per provare il programma si puo' inserire l'input direttamente dal terminale,
terminando con ^D, oppure redirigendo lo standard input.



Supponiamo ad esempio che  il file in2.txt contenga le linee

----- FILE in2.txt ----
20
30
-50
0
-12
----- FINE FILE in2.txt  ------

Con il comando


  java EsempioBufferedReader  < in2.txt 

viene stampato


Numero di interi inseriti: 5
Somma: -12


ATTENZIONE
----------

Il programma funziona correttamente solo se ogni linea di input contiene
una sequenza di caratteri corrispondenti alla rappresentazione decimale
di un intero. 

Se ad esempio primo o dopo un numero si inserisce uno spazio,
l'esecuzione termina segnalando un'eccezione:


  Exception in thread "main" java.lang.NumberFormatException: For input string: ...
       ....
       at java.lang.Integer.parseInt(Integer.java:447)
       ...

Infatti, una stringa contenente uno spazio non puo' essere convertita da
Integer.parseInt in un intero.





***/


import java.io.*;

public class  EsempioBufferedReader {

    public static void main(String[] args) throws IOException {

        BufferedReader brd = new BufferedReader(new InputStreamReader(System.in));

	int somma= 0;
	int count = 0;
	
	String inputLine;
	while( (inputLine = brd.readLine()) != null){ 
                    // la lettura termina quando readLine restituisce null
	    int n = Integer.parseInt(inputLine);
	    somma += n;
	    count++;
	} 

	System.out.println("Numero di interi inseriti: " + count);
	System.out.println("Somma: " + somma );
	

    }// end main

}// end class
