Java Reading Console Input

Ci sono momenti in cui è importante ottenere input dagli utenti per l’esecuzione dei programmi. Per fare questo avete bisogno dei metodi di input di Java Reading Console.

Java Reading Console Input Methods

  1. Usando la classe BufferedReader
  2. Usando la classe Scanner
  3. Usando la classe Console

Diamo ora un’occhiata da vicino a questi metodi uno per uno.

Utilizzando la classe BufferedReader

Questa è la tecnica più vecchia in Java usata per leggere l’input della console. Questa tecnica è stata introdotta per la prima volta in JDK 1.0. Usando questa tecnica abbiamo bisogno di avvolgere InputStreamReader e System.in nella classe BufferedReader.

Questo viene fatto usando la seguente sintassi:

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

Utilizzando questo collegherà il flusso basato sui caratteri ‘br’ alla console per l’input attraverso System.in.

NOTA: mentre si usa BufferedReader deve essere lanciata una IOException altrimenti verrà mostrato un messaggio di errore in fase di compilazione.

La classe BufferedReader è definita in java.io quindi per usare la classe BufferedReader bisogna prima importare java.io.

Diamo un’occhiata ad un esempio per rendere il concetto più chiaro.

In questo esempio, otterremo una stringa di caratteri inseriti dall’utente. Il programma mostrerà i caratteri uno per uno all’utente sullo schermo. Continuerà fino a quando non incontrerà il carattere di terminazione nella stringa.

// Program to read a string using BufferedReader class.import java.io.*;class bread{ public static void main(String args) throws IOException { char ch; BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); System.out.println ("Enter any string of your choice (To terminate Press \'z\' "); do { ch = (char) br.read (); System.out.println (ch); } while (ch != 'z'); }}

Output 1

Java Lettura da Console

Qui, quando si incontra z nella stringa di caratteri, il programma smette di visualizzare qualsiasi altro carattere inserito dall’utente.

Output 2

Lettura dell'input da console nell'output Java

Utilizzo della classe Scanner

La classe Scanner è stata introdotta nel JDK 1.5 ed è stata ampiamente utilizzata. La classe Scanner fornisce vari metodi per facilitare il modo in cui otteniamo input dalla console. La classe Scanner è definita in java.util quindi è necessario importarla prima.

Lo Scanner usa anche System.in e la sua sintassi è la seguente:

Scanner obj_name = new Scanner (System.in);

Alcuni dei metodi di utilità che la classe Scanner fornisce sono i seguenti:

hasNext() Ritorna un valore booleano a seconda che un token sia disponibile o meno. Restituisce un valore vero se qualsiasi token è disponibile. Altrimenti restituisce un valore falso.
hasNextInt() Ritorna un vero se viene letto un valore int. Altrimenti restituirà un valore falso.
hasNextFloat() Ritorna un vero se viene letto un valore float. Altrimenti restituirà un valore falso.
hasNextBoolean() Ritorna un vero se viene letto un valore booleano. Altrimenti restituirà un valore falso.
next() Legge il prossimo token come una stringa.
nextLine() Legge la prossima linea di input come una stringa.
nextInt() Legge il prossimo valore di input come un intero.
nextDouble() Legge il prossimo valore di input come un valore doppio.

Facciamo un esempio per capire meglio il concetto. In questo esempio leggeremo dei numeri da un utente e troveremo la somma di questi numeri e gli mostreremo il risultato.

// Program to calculate the sum of n numbers using Scanner classimport java.util.*;class scanner_eg{ public static void main(String args) { Scanner obj = new Scanner (System.in); double total = 0; System.out.println ("Enter numbers to add. Enter any string to end list."); while (obj.hasNext()) { if (obj.hasNextDouble()) { total += obj.nextDouble(); } else { break; } } System.out.println ("Sum of the numbers is " + total); }}

Output

NOTA: – Ogni volta che usiamo il metodo next, a run time cercherà sempre l’input definito. Se tale input non è disponibile, lancerà un’eccezione. Quindi, è sempre utile controllare l’input in anticipo usando il metodo hasNext prima di chiamare il metodo next.

Usando la classe Console

Questo è un altro modo di leggere l’input dell’utente dalla console in Java. Questo modo di leggere l’input dell’utente è stato introdotto in JDK 1.6. Anche questa tecnica usa System.in per leggere l’input.

Questa tecnica è più adatta per leggere input che non richiedono l’eco dell’input dell’utente come la lettura delle password dell’utente. Questa tecnica legge gli input dell’utente senza fare l’eco dei caratteri inseriti dall’utente.

La classe Console è definita nella classe java.io che deve essere importata prima di usare la classe console.

Consideriamo un esempio.

import java.io.*;class consoleEg{ public static void main(String args) { String name; System.out.println ("Enter your name: "); Console c = System.console(); name = c.readLine(); System.out.println ("Your name is: " + name); }}

Output

utilizzando la classe console

NOTA: – L’unico inconveniente di questa tecnica è che funziona in ambienti interattivi e non funziona nell’IDE.

In Java possiamo leggere l’input della console in tre modi, cioè usando la classe BufferedReader, la classe Scanner e la classe Console in Java. A seconda del modo in cui volete leggere l’input dell’utente, potete implementarlo nei vostri programmi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *