Esercitazione 2.3: comprendere I/O in JAVA
L'input è rappresentato dai dati che inviamo al programma dall'esterno. L'invio avviene mediante il canale di ricezione dei dati del programma.
Come viene letto l'input dalla tastiera con la classe BufferedReader?
BufferedReader è una classe che si occupa della lettura del testo da un flusso di caratteri di input. Memorizza i caratteri per consentire una lettura efficiente dei dati di testo. In questa esercitazione, vedremo come usare la classe BufferedReader. Analizziamo un esempio per prendere un valore intero e una stringa dall'utente.
Leggere una stringa immessa da tastiera
- creare un oggetto della classe InputStreamReader associato a System.in
- e definire un oggetto della classe BufferedReader associato a System.in
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
il metodo readLine() legge una riga di caratteri dallo stream di input e genera un IOException in caso di errore
try{
String name = tastiera.readLine();
}catch(IOException e){
e.getMessage();
}
Leggere un intero immesso da tastiera
try{
int anni = Integer.parseInt(tastiera.readLine());
}catch(IOException e){
e.getMessage();
}
Un programma di esempio
EsBufferedReader.java
import java.io.*;
public class EsBufferedReader
{
public static void main(String[] args) {
int anni = 34;
//scrivere il programma
//input
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
try{
// output
System.out.println("Inserisci numero: ");
anni = Integer.parseInt(tastiera.readLine());
// output
System.out.println("numero inserito: "+anni);
}catch(IOException e){
// gestione degli errori
e.getMessage();
}
}
}
Usa la classe BufferedReader
Esercizio 1
Scrivere un programma Java che richiede e stampa la propria anagrafica (Nome,Cognome,Indirizzo,NumeroCivico,DatadiNascita,CodiceFiscale).
Esercizio 2
Esegui il programma precedente e inserisci una lettera invece di un numero; questo genererà un IOException
Esercizio 3
Scrivere un programma Java che richiede e stampa i dati di un corso (Materia, Argomento1, Argomento2, Argomento3,Docente,Prezzo).