|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.io.Reader | +--java.io.FilterReader | +--fiji.io.Lettore
Un oggetto Lettore
permette di leggere,
in modo semplice, dati da un flusso di ingresso.
In particolare, un oggetto Lettore
consente
la lettura di dati (in formato testuale) corrispondenti
ai vari tipi primitivi di Java.
Sono fornite funzionalità che permettono di verificare
se la scansione è giunta alla fina della riga o del flusso
di ingresso.
L'oggetto Lettore.in
è un oggetto Lettore
che rappresenta in modo conveniente
la tastiera del calcolatore System.in
.
Solitamente, un Lettore
viene creato senza
specificare argomenti, e questo corrisponde a fargli accedere i
dati dal flusso standard di ingresso System.in
(cioè, dalla tastiera).
E' possibile anche creare un Lettore
per accedere
ai dati di un altro flusso di ingresso pre-esistente,
ad esempio corrispondente a una stringa, un file di testo
o al contenuto di una pagina Web.
(Si veda in proposito la documentazione associata ai costruttori.)
Field Summary | |
static Lettore |
in
Un oggetto che rappresenta la tastiera del calcolatore. |
Constructor Summary | |
Lettore()
Crea un Lettore corrispondente al
flusso standard di ingresso, System.in
(cioè la tastiera). |
|
Lettore(java.io.Reader rdr)
Crea un Lettore corrispondente al
flusso ingresso pre-esistente in .
|
|
Lettore(java.lang.String s)
Crea un Lettore per leggere
dalla stringa s .
|
Method Summary | |
boolean |
eof()
Verifica se è stata raggiunta la fine del flusso. |
boolean |
eoln()
Verifica se è stata raggiunta la fine della linea corrente. |
boolean |
leggiBoolean()
Legge un boolean (delimitato da spazi).
|
char |
leggiChar()
Legge un singolo carattere. |
double |
leggiDouble()
Legge un numero reale (delimitato da spazi). |
float |
leggiFloat()
Legge un numero reale (delimitato da spazi). |
int |
leggiInt()
Legge un intero (delimitato da spazi). |
java.lang.String |
leggiLinea()
Legge una linea di testo. |
long |
leggiLong()
Legge un intero (delimitato da spazi). |
short |
leggiShort()
Legge un intero (delimitato da spazi). |
java.lang.String |
leggiString()
Legge una stringa, ovvero una parola senza spazi al suo interno. |
java.lang.String |
leggiToken()
Legge un token, ovvero una parola senza spazi al suo interno. |
void |
readln()
Consuma il resto della linea corrente, compresi i caratteri di terminazione di linea. |
Methods inherited from class java.io.FilterReader |
close, mark, markSupported, read, read, ready, reset, skip |
Methods inherited from class java.io.Reader |
read |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static Lettore in
Constructor Detail |
public Lettore()
Lettore
corrispondente al
flusso standard di ingresso, System.in
(cioè la tastiera).
public Lettore(java.lang.String s)
Lettore
per leggere
dalla stringa s
.
Esempio: Lettura e somma di due numeri interi:
Lettore in = new Lettore("2 3"); int a, b, somma; a = in.leggiInt(); b = in.LeggiInt(); somma = a+b;
La stringa s
viene eventualmente
estesa con un terminatore di linea.
(Ovvero, viene garantito che la stringa da cui verrà
effettuata la lettura termini con un terminatore di linea.
Questo risolve alcuni problemi riscontrati in pratica.)
public Lettore(java.io.Reader rdr)
Lettore
corrispondente al
flusso ingresso pre-esistente in
.
Il flusso di ingresso pre-esistente può essere, ad esempio, un file di testo oppure una pagina Web. Nei due casi in esempio, si possono usare rispettivamente le seguenti seguenze di istruzioni:
Lettura da un file di testo:
// import java.io.*; // legge dal file "nomefile" try { Lettore fileIn = new Lettore(new FileReader("nomefile")); ... scansione del file di testo ... } catch (FileNotFoundException e) { e.printStackTrace(System.out); System.exit(-1); }
Lettura da una pagina Web:
// import java.io.*; // import java.net.*; // legge dalla pagina di URL "url" try { URL u = new URL("url"); URLConnection uc = u.openConnection(); InputStream is = uc.getInputStream(); Reader r = new BufferedReader(new InputStreamReader(is)); Lettore netIn = new Lettore(r); ... scansione della pagina Web ... } catch (IOException e) { e.printStackTrace(System.out); System.exit(-1); }
rdr
- Il flusso di ingresso pre-esistente.Method Detail |
public java.lang.String leggiToken()
Ignorando gli eventuali spazi bianchi iniziali, legge una parola composta da una sequenza non vuota di caratteri che con comprende spazi bianchi e la restituisce come stringa. Una parola è quindi una sequenza di caratteri stampabili (non bianchi), delimitata da spazi e/o dalla fine della linea (o del flusso). Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e quindi ignorati perché considerati non appartenenti alla parola. La parola si considera terminata dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile. Il carattere che termina la parola (spazio bianco o carattere di fine linea) viene considerato scandito.
Se si vuole leggere una stringa disposta su una
linea di testo, restituendo anche eventuali spazi iniziali, interi
e finali della linea di testo, è necessario usare il metodo
String leggiLinea()
.
public java.lang.String leggiString()
Ignorando gli eventuali spazi bianchi iniziali, legge una parola composta da una sequenza non vuota di caratteri che con comprende spazi bianchi e la restituisce come stringa. Una parola è quindi una sequenza di caratteri stampabili (non bianchi), delimitata da spazi e/o dalla fine della linea (o del flusso). Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e quindi ignorati perché considerati non appartenenti alla parola. La parola si considera terminata dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile. Il carattere che termina la parola (spazio bianco o carattere di fine linea) viene considerato scandito.
Se si vuole leggere una stringa disposta su una
linea di testo, restituendo anche eventuali spazi iniziali, interi
e finali della linea di testo, è necessario usare il metodo
String leggiLinea()
.
public char leggiChar()
Gli eventuali caratteri di fine linea vengono ignorati.
public long leggiLong()
Il numerale deve essere espresso in base 10, e può iniziare con un segno negativo. Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e non appartengono al numerale. Il numerale si considera terminato dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile del numerale. Il carattere che termina il numerale (spazio bianco o carattere di fine linea) si considera scandito.
long
letto.public int leggiInt()
Il numerale deve essere espresso in base 10, e può iniziare con un segno negativo. Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e non appartengono al numerale. Il numerale si considera terminato dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile del numerale. Il carattere che termina il numerale (spazio bianco o carattere di fine linea) si considera scandito.
int
letto.public short leggiShort()
Il numerale deve essere espresso in base 10, e può iniziare con un segno negativo. Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e non appartengono al numerale. Il numerale si considera terminato dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile del numerale. Il carattere che termina il numerale (spazio bianco o carattere di fine linea) si considera scandito.
short
letto.public float leggiFloat()
Il numerale deve essere espresso in base 10, e può iniziare con un segno negativo. Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e non appartengono al numerale. Il numerale si considera terminato dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile del numerale. Il carattere che termina il numerale (spazio bianco o carattere di fine linea) si considera scandito.
float
letto.public double leggiDouble()
Il numerale deve essere espresso in base 10, e può iniziare con un segno negativo. Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e non appartengono al numerale. Il numerale si considera terminato dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile del numerale. Il carattere che termina il numerale (spazio bianco o carattere di fine linea) si considera scandito.
double
letto.public boolean leggiBoolean()
boolean
(delimitato da spazi).
I letterali boolean
sono della
forma true
oppure false
.
Altri letterali sono interpretati come false
.
Tutti i caratteri che precedono il primo carattere stampabile sono considerati spazi bianchi, e non appartengono al letterale. Il letterale si considera terminato dal primo spazio bianco o terminazione di linea (o del flusso) che segue il primo carattere stampabile del numerale. Il carattere che termina il letterale (spazio bianco o carattere di fine linea) si considera scandito.
boolean
letto.public java.lang.String leggiLinea()
La stringa restituita non comprende i caratteri di terminazione della linea.
public void readln()
public boolean eof()
true
se è stata raggiunta la fine
del flusso,
false
altrimenti.public boolean eoln()
La linea si considera terminata quando viene scandita una delle sequenti sequenze di caratteri: '\r', '\n', oppure '\r' seguito da '\n', oppure quando viene raggiunta la fine del flusso.
true
se è stata raggiunta la fine
della linea corrente,
false
altrimenti.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |