Stampa e Lettura da Console
Stream
Uno "stream" \xE8 un concetto utilizzato per rappresentare un flusso, potenzialmente continuo o continuo a tratti, di dati da e per il programma
std
Streams
Esistono tre stream predefiniti
-
in
standard input
-
err
standard output
-
out
standard ouput
Oggetti della classe predefinita
System
Il loro riferimento \xE8 quindi del tipo
System.in
System.out
Una volta generato un oggetto stream \xE8 possibile organizzare le informazioni in output (formattazione) o decodificare quelle lette.
Vengono messi a disposizione alcuni metodi per la gestione dell'output
formattato.
La possibilit\xE0 di combinare nella stampa stringhe predefinite con valori di variabili numeriche o testuali \xE8 fornito dal metodi equivalenti:
System.out.format('stringa di formattazione', lista variabili);
........
System.out.printf('stringa di formattazione', lista variabili);
La stringa di formattazione contiene testo e
convertitori di formato nella forma
%cf
. I pi\xF9 importanti:
Converter |
Flag |
Spiegazione |
d |
|
A decimal integer. |
f |
|
A float. |
n |
|
A new line character appropriate to the platform running the application. You should always use %n, rather than \n. |
|
08 |
Eight characters in width, with leading zeroes as necessary. |
La lista completa
qui
Lo standard input \xE8 un oggetto
byte stream
pu\xF2 essere quindi gestito a livello di
- lettura a livello di byte con i metodi messi a disposizione dalla classe
- incartato in modo da trasformarlo in un "charecter stream"
- come oggetto Console che ha l'inconveniente di no essere per ora gestito all'interno di IDE tipo Eclipse o Netbean Qui l'elenco dei principali metodi messi a disposizione per questo oggetto.
Qui un esempio del secondo metodo:
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class ConsoleInput {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//
// Instanzia un oggetto di tipo BufferedReader
// e vi collega lo Standard input
//
BufferedReader conBr =
new BufferedReader(new InputStreamReader(System.in));
String consoleLine = null;
// Chiedi all'utente l'Input
System.out.print("Enter your name: ");
//
// Il metodo della classe Console "readLine"
// restituisce una stringa contenente l'input
//
try{
consoleLine = conBr.readLine();
} catch (IOException ioe) {
System.out.format("IO error trying to read your name!%n "
+ " error %d",ioe);
System.exit(1);
}
System.out.format("echo Stringa letta %s %n ", consoleLine);
}
}
Decodifica di un Buffer
La classe
Scanner contiene la definizione di "file" e metodi per interagire con uno stream di input e per la decodifica delle informazioni contenute in esso.
Fine Pagina
--
RobertoBernetti - 10 Jan 2015