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

io-ins.gif
io-outs.gif

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

Decodifica dell'input e Formattazione dell'output

Una volta generato un oggetto stream \xE8 possibile organizzare le informazioni in output (formattazione) o decodificare quelle lette.

Stampa Formattata di Testo e Numeri

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

Lettura dallo std Input

Lo standard input \xE8 un oggetto byte stream pu\xF2 essere quindi gestito a livello di

  1. lettura a livello di byte con i metodi messi a disposizione dalla classe
  2. incartato in modo da trasformarlo in un "charecter stream"
  3. 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
Topic revision: r1 - 22 Feb 2017, UnknownUser
This site is powered by FoswikiCreative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License1999-2025
Ideas, requests, problems regarding this site? Send feedback