2012-01-25 10 views
5

Ho utilizzato l'oggetto Scanner per ricevere input fino ad ora e vorrei sapere come funziona BufferedReader. L'ho provato e sembra che funzioni solo per le stringhe. qualcuno può mostrarmi come usarlo con ints e double? e come si richiedono due input di stringa sulla stessa linea? Grazie.Utilizzo di BufferedReader per immettere input in java

risposta

7

Pensate BufferedReader e Scanner come a diversi livelli di astrazione, piuttosto che parti intercambiabili che "fanno la stessa cosa." Penso che questo sia il problema fondamentale a cui sei impiccato.

BufferedReader è in un certo senso "più semplice" di Scanner. BufferedReader legge solo String s.

Scanner è molto più robusto di BufferedReader. Dispone di API che semplificano l'estrazione di oggetti di vario tipo.

Posso immaginareessere scritto utilizzando BufferedReader come blocco predefinito sottostante. Mentre usare Scanner per scrivere BufferedReader sarebbe come uccidere una formica con una mazza.

+3

+1 per "uccidere una formica con una mazza". Che non è divertente né per la formica né per il martello. – Perception

2

Sì, il lettore di barre utilizzerà solo stringhe. è necessario convertirli in int o double come richiesto utilizzando Integer.parseInt (valore) o Double.parseDouble (valore)

+0

okay e come si richiedono due input di stringa sulla stessa linea? –

+0

con Scanner è possibile utilizzare la funzione scan.next() ma con bufferedreader? Grazie –

+0

Le linee si distinguono in base a "\ n" che viene inserito. – tazo

1

BufferedReader prende fondamentalmente un flusso di input come argomento.

È necessario utilizzare metodi integrati per analizzare la stringa in ints and doubles.

come:

BufferedReader br = new BufferedReader(new FileReader("input1.txt")) 
String line = br.readLine(); 
//more logic here 

int number = Integer.parseInt(brstring); 
double number = Double.parseDouble(brstring); 
+0

potresti dirmi come chiedere due input di stringa sulla stessa linea? grazie –

Problemi correlati