La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni



Documenti analoghi
Un oggetto per la lettura dalla tastiera

Modulo 2: Strutture fondamentali della programmazione Java

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Unità B3 Strutture di controllo

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Corso sul linguaggio Java

Corso sul linguaggio Java

LABORATORIO DI INFORMATICA parte 6 -

Gestione delle Eccezioni

Java: Compilatore e Interprete

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Le variabili. Olga Scotti

Laboratorio di Informatica Lezione 4

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

Struttura di un programma Java

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Operazioni di scrittura e lettura con periferici in linguaggio Java

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

10 - Programmare con gli Array

Concetto di Funzione e Procedura METODI in Java

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

20 - Input/Output su File

Programmare in Java. Olga Scotti

Parte II: Reti di calcolatori Lezione 10

Cifratura simmetrica

Un flusso (stream) è una astrazione che produce e/o consuma informazioni.

Le basi del linguaggio Java

Esercizi di programmazione in C

Parte II: Reti di calcolatori Lezione 12

La selezione binaria

Gestione dei File in C

Il linguaggio Java I file sequenziali

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Richiesta pagina PHP (es: index.php)

Algoritmi di Ricerca. Esempi di programmi Java

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

Flussi, lettori e scrittori

Esercizi della lezione 5 di Java

Introduzione al Linguaggio C

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Programmazione 1 A.A. 2015/2016

Funzioni in C. Violetta Lonati

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

esercizi Esercizi / problemi

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Esercizi classi e array

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

RISOLUTORE AUTOMATICO PER SUDOKU

Eclipse. Avviare un progetto e compilare un semplice programma

Esercitazione n 4. Obiettivi

Corso di Reti di Calcolatori L-A

Test di unità con JUnit4

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it

I file di dati. Unità didattica D1 1

Prova di Laboratorio di Programmazione

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

3. La sintassi di Java

Inizializzazione, Assegnamento e Distruzione di Classi

Introduzione alla programmazione in C

ELEMENTI DI PROGETTAZIONE SOFTWARE

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Oggetti Lezione 3. aspetti generali e definizione di classi I

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Esercizi di JavaScript

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Informatica I. Ingegneria Medica. Prof. Diego Salamon

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Programmazione ad Oggetti: JAVA. Esercitazione

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Dichiarazioni di import: Introduzione

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 10 Settembre 2013

MANUALE EDICOLA 04.05

Appunti di Informatica 1

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Aritmetica dei Calcolatori 2

LAVORO ESTIVO DI INFORMATICA CLASSE 2O

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Transcript:

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice da usare direttamente. Le stesse API offrono diversi modi per poter leggere da tastiera. Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

Un primo metodo che si vuole presentare è quello offerto dall oggetto in di tipo Scanner, del package java.util Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

int nextint() legge un numero intero, e restituisce il numero letto double nextdouble() legge un numero reale, e restituisce il numero letto String nextline() legge una linea di testo, e la restituisce String next() legge un token (intuitivamente, una sequenza di caratteri contigui e senza separatori), e restituisce il token letto boolean hashnextint() boolean hashnextdouble() verifica se il prossimo token può essere interpretato come un numero intero/reale boolean hashnextline() boolean hashnext() verifica se in input è disponibile una ulteriore linea/token Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

Per usare un oggetto in di tipo Scanner bisogna: importare la classe Scanner dal package java.util usando la clausola import java.util.*; dichiarare una variabile in di tipo Scanner creare l oggetto che rappresenta la tastiera mediante un istruzione in = new Scanner(System.in); usare opportunamente le operazioni dell oggetto in int nextint() double nextdouble() String nextline() String next() boolean hashnextint() boolean hashnextdouble() boolean hashnextline() boolean hashnext() Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

Si vuole scrivere un applicazione Java che legge dalla tastiera due numeri interi, ne calcola la somma e la visualizza sullo schermo Scrivi due numeri interi 10 15 La somma dei due numeri è 25 Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

package progetto1; import java.util.*; /* Applicazione che legge dalla tastiera due numeri interi * e ne calcola e visualizza la somma. */ class Somma { public static void main(string[] args) } { Scanner in; // per la lettura dalla tastiera definiamo l oggetto in di tipo Scanner /* crea l oggetto che rappresenta la tastiera */ in = new Scanner( System.in ); System.out.println("Scrivi due numeri interi"); /* legge due numeri interi a e b */ int a = in.nextint(); int b = in.nextint(); /* calcola la somma di a e b e la visualizza */ int somma = a+b; System.out.print("La somma dei due numeri è: " +somma); } Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

Per leggere dati da un file presente sul disco, la classe Scanner si affida ad un altra classe, File, che descrive file e cartelle presenti in un file system. Per prima cosa si costruisce un oggetto di tipo File, fornendo il nome del file da leggere: File infile = new File( input.txt ); Successivamente si utilizza tale oggetto per costruire un oggetto di tipo Scanner: Scanner in = new Scanner(inFile);

Per scrivere dati in un file si costruisce un oggetto di tipo PrintWriter, fornendo il nome del file: PrintWriter out = new PrintWriter( output.txt ) Se il file in cui si scrive esiste già, viene svuotato prima di scrivervi nuovi dati. Se il file non esiste viene creato un file nuovo Con un oggetto di tipo PrintWriter potete usare gli usuali metodi print, println Quando avete terminato di scrivere in un file accertatevi di chiudere l oggetto PrintWriter: out.close()

Esempio: import java.util.*; import java.io.*; Public class LetturaFile { public static void main(string[] args) { try { File inputf= new File("input1.txt"); Scanner in = new Scanner(inputF); PrintWriter out= new PrintWriter ("output1.txt"); String riga = in.nextline(); out.println(riga); out.close(); } Catch(FileNotFoundException exc) { System.out.println("Il file di input non esiste"); } } }

Esercizio Scrivere un programma che legge tutte le righe presenti in un file e le scrive in un altro file inserendo per ciascuna riga il corrispondente numero di riga.

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

System.out rappresenta un oggetto associato allo standard output. Esiste anche un oggetto associato allo standard error che è System.err. Entrambi fanno riferimento, in assenza di una diversa specifica (per default) allo schermo.

println è un metodo. Sull oggetto System.out viene invocato il metodo println(), con un parametro che rappresenta il valore da visualizzare. Il parametro può essere una stringa, un numero intero o reale, un carattere o un booleano. Quando il metodo println() viene richiamato, stampa sul video il parametro e inserisce un ritorno a capo. È possibile utilizzare anche l oggetto print(): esso stampa il parametro passato, ma non il ritorno a capo. I metodi print() e println() ricevono un unico parametro, ma utilizzando l operatore + è possibile concatenere stringhe e numeri.

Esercizio Scrivere un programma che consenta di stampare il valore di tre variabili: un numero intero, un numero reale e un booleano.

Soluzione: class stampa { public static void main (String args[]) { int intero = 5; float reale = 25.68f; boolean trovato = false; System.out.println( Numero intero = + intero); System.out.println( Numero reale = + reale); System.out.println( Trovato = + false); } }

Per le operazioni di input esiste un oggetto analogo System.in che gestisce il flusso di dati inseriti da tastiera. L oggetto System.in, in pratica viene mascherato con altri oggetti più potenti che forniscono maggiori funzionalità. Si utilizza la classe BufferReader nel seguente modo: InputStreamReader input = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input);

Con queste dichiarazioni viene definito un oggetto, di classe BufferedReader, usando l operatore new che crea un nuovo oggetto. La classe BufferedReader mette a disposizione il metodo readline() che consente di leggere, una riga per volta. Una riga viene considerata terminata quando si preme il tasto Invio. Questo metodo acquisisce solo stringhe, quindi se si vogliono acquisire valori numeri si deve effettuare la conversione tra stringhe e numeri.

Per effettuare la lettura di una stringa dobbiamo dichiarare una variabile di tipo stringa e poi usare il metodo readline() con l oggetto tastiera definito in precedenza. Esempio: String nome; nome = tastiera.readline();

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano"

L operazione deve essere completata considerando le eccezioni che possono essere generate dal metodo readline(). L eccezione segnala una situazione anomala. Quando si verifica un eccezione bisogna prevedere un blocco di istruzioni per gestire questa situazione. Il blocco viene realizzato con il costrutto try {} catch {}

In Java una classe Exception, e le eccezioni sono degli oggetti appartenenti a questa classe, questo ci permette di trattarle come gli altri componenti del linguaggio.

Quindi la lettura di una stringa si effettua correttamente nel seguente modo: String nome; try { nome = tastiera.readline(); } catch(exception e) {}

Il segmento di codice precedente stabilisce che, al verificarsi dell eccezione non deve essere effettuata alcuna operazione. Eccezioni predefinite: AritmeticException: segnala errori aritmetici; NullPointyerException: errore dovuto all utilizzo di un riferimento che possiede il valore null; IndexOutBoundException: errore nell indice dell array; IOException: errore generico di input/output

Per effettuare la lettura di numeri, bisogna convertire la stringa ottenuta dall operazione di input nel seguente modo: String legginumero; int num; try { legginumero = tastiera.readline(); num = Integer.valueOf(leggiNumero).intValue; } catch(exception e) { System.out.println( Numero non corretto ); return; }

Se nel try è presente una clausola finally, il suo codice viene eseguito dopo aver completato tutte le altre operazioni del try, indipendentemente dal fatto che questa abbiano lanciato una eccezione o no.

1. Leggere da tastiera l età di tre persone e calcolare l età media; 2. Eseguire una divisione con divisore uguale a zero e gestire l eccezione generata.