PDA

View Full Version : Java e standard input


peppedx
12-04-2003, 11:23
Perdono per la domanda stupida, ma ho appena cominciato ad approcciarmi a java e sto seguendo TIJ di eckel, ma se l'analogo di cout è system.out.println, come si fa a usare l'input da console!??

soalle
12-04-2003, 11:41
Prima di vederti l'input da console dovresti vedere l'i/o da / su file... poi la cosa è analoga...
...anyway...

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

poi per leggere:

String buff=in.readLine();

recoil
12-04-2003, 18:18
la risposta di soalle è giusta, anche io uso quel metodo per leggere da tastiera.
System.in esiste e fa parte della classe InputStream che hai dei metodi veramente brutali per la lettura, se vuoi puoi utilizzare pure quella ma non penso che sia molto usata e non faccio fatica a crederci... :-)

soalle
12-04-2003, 19:29
System.in è un rimasuglio dei primi java quando non c'era la divisione tra stream di byte e stream di caratteri...
Adesso che c'è divisione delle due cose è rimasto System.in come Stream di byte (per compatibilità verso il basso) eppoi c'è l'InputStreamReader che fa da Bridge tra le due tipologie di stream... e dopo ci metti sopra un bel BufferedReader che è sempre comodo per leggere una riga intera...
La divisione in stream di byte/caratteri + bridge c'è anche per l'output...

peppedx
13-04-2003, 08:45
Grazie a tutti ( io, proveniendo da Basic e Pascal già odiavo la scanf... ma devo dire che Java è ancora più contorto per quanto riguarda l'input!!!!)

soalle
13-04-2003, 09:35
Niente a che vedere la scanf (volendo insicura e origine di attacchi di buffer overflow...) e l'input da console di Java...

Una piccola istruzioncina per costruire l'oggetto e poi vai sicuro a leggerti delle stringhe intere (che poi puoi convertire in intero, sezionare con i metodi della classe String, estrarre parole con lo StringTokenizer, ecc...)

Molto più facile Java...