Sei sulla pagina 1di 4

Input/Output standard

Introduzione
I programmi non avrebbero alcuna utilit se non potessero acquisire informazioni dall'esterno (input di dati) o fornire informazioni all'esterno (output di dati). In generale, con input si indicano i dati che occorrono ad un programma per poter procedere con lelaborazione; con output si indicano i risultati dellelaborazione stessa.

input

output

In questa dispensa ci occuperemo dellI/O standard, ossia di input di dati attraverso la tastiera e di output di dati mediante il monitor del computer. Inizieremo con loutput, pi semplice, per poi passare ai diversi metodi di immissione di input.

Output a video
Per visualizzare i risultati di unelaborazione sul monitor, si utilizza listruzione System.out.println, la cui sintassi :

System.out.println(output);
dove output pu essere una stringa, cio una sequenza di caratteri alfanumerici, racchiusa tra virgolette (es. codice A123Hfggg%); un identificatore di variabile/costante. Attenzione! System ha iniziale maiuscola perch una classe di Java. Se scrivete system, vi viene segnalato un errore. Esempio Il codice:

System.out.println("questo e il risultato");
visualizza la stringa questo il risultato. Esempio Il codice:

System.out.println(numero);
visualizza il valore della variabile numero. La variabile numero deve essere stata dichiarata in precedenza e deve anche avere un valore. In caso contrario, viene segnalato un errore.

Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

Listruzione System.out.println ammette un unico argomento; per visualizzare pi argomenti bisogna utilizzare loperatore di concatenazione +. Esempio Il codice:

System.out.println(questo e il risultato + numero);


visualizza la stringa questo il risultato seguita dal valore della variabile numero. Loperatore di concatenazione + converte automaticamente ogni operando in una stringa. Osservazioni Non utilizzate nelle stringhe lettere accentate; sostituite laccento con lapice (). Quando utilizzate loperatore di concatenazione di stringhe ricordate di lasciare almeno uno spazio bianco tra le stringhe che desiderate appaiano a video.

Input da tastiera
Le versioni fino alla 1.4 di Java non dispongono di specifiche istruzioni per lacquisizione di input da tastiera; per semplificare le operazioni occorre creare una classe apposita. A partire dalla versione 5 di Java, disponibile la classe Scanner. Essa appartiene alla libreria (package) java.util e fornisce vari metodi per linput di tipi primitivi e stringhe. Metodi della classe Scanner significato un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e un numero immesso da tastiera e una stringa immessa da tastiera

metodo nextBoolean() nextByte() nextShort() nextInt() nextLong() nextFloat() nextDouble() nextLine()

legge legge legge legge legge legge legge legge

lo lo lo lo lo lo lo

trasforma trasforma trasforma trasforma trasforma trasforma trasforma

in in in in in in in

boolean byte short int long float double

Per poter usare i metodi della classe Scanner, occorre aggiungere due righe di codice nel programma Java, cos come illustrato in seguito:

import java.util.*; class nome_classe { public static void main (String args[]) { Scanner console= new Scanner(System.in); ................................. } }
Per acquisire in input un intero, occorre scrivere:
Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

ID_varIntera = console.nextInt();
Per tutti gli altri tipi, si procede in modo analogo.

I/O con finestre di dialogo


Java consente di utilizzare delle finestre di dialogo per lI/O, attraverso la classe JOptionPane del package javax.swing. I metodi disponibili sono: Metodi della classe JOptionPane metodo significato showInputDialog(messaggio) mostra una finestra nella quale visualizzato il messaggio specificato e con un apposito campo che consente di inserire una stringa (usata per linput) showMessageDialog(null,messaggio) mostra una finestra nella quale visualizzato il messaggio specificato (usata per loutput) Per poter usare i metodi della classe JOptionPane, occorre aggiungere una riga di codice nel programma Java, cos come illustrato in seguito:

import javax.swing.*; class nome_classe { public static void main (String args[]) { ................................. } }
Per acquisire in input una stringa, occorre scrivere:

String ID_stringa = JOptionPane.showInputDialog(messaggio);


Esempio Supponiamo che il messaggio sia Inserisci stringa. A video apparir la finestra

Per produrre in output una stringa, occorre scrivere:

JOptionPane.showMessageDialog(null,messaggio);
Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11

Esempio Supponiamo che il messaggio sia Ciao PIPPO, come stai?. A video apparir la finestra

Il principale problema legato alle finestre di dialogo che consentono di acquisire in input solo stringhe; anche un numero digitato nel campo della finestra di input interpretato come stringa. Questo implica che necessario convertire la stringa nel tipo necessario per lelaborazione. Nella tabella seguente sono illustrati i principali metodi per la conversione di stringhe. Metodi per la conversione di stringhe metodo significato Byte.parseByte(stringa) converte stringa in un byte Short.parseShort(stringa) converte stringa in uno short Integer.parseInt(stringa) converte stringa in un int Long.parseLong(stringa) converte stringa in un long Float.parseFloat(stringa) converte stringa in un float Double.parseDouble(stringa) converte stringa in un double Boolean.parseBoolean(stringa) converte stringa in un boolean Esempio Il seguente frammento di codice richiede in input un numero, poi lo incrementa di 1 e infine lo produce in output.

String numStr = JOptionPane.showInputDialog(Immetti numero); int num= Integer.parseInt(numStr); num= num+1; numStr=+num; JOptionPane.showMessageDialog(null,numStr);

_______________________________________________________________________
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11