2012-01-25 9 views
5

He estado usando el objeto Scanner para recibir entradas hasta ahora y me gustaría aprender cómo funciona el BufferedReader. Lo probé y parece funcionar solo para Strings. ¿Alguien puede mostrarme cómo usarlo con Ints y Dobles? ¿Y cómo se solicitan dos entradas de Cadena en la misma línea? Gracias.Uso de BufferedReader para tomar entrada en java

Respuesta

7

Piense en BufferedReader y Scanner como en diferentes niveles de abstracción, en lugar de partes intercambiables que "hacer la misma cosa." Creo que este es el problema fundamental en el que estás colgado.

BufferedReader es en cierto sentido "más simple" que Scanner. BufferedReader acaba de leer String s.

Scanner es mucho más robusto que BufferedReader. Tiene API que facilitan la extracción de objetos de diversos tipos.

Me imagino que Scanner está escrito utilizando BufferedReader como un bloque de construcción subyacente. Mientras que usar Scanner para escribir BufferedReader sería como matar una hormiga con un mazo.

+3

+1 por 'matar una hormiga con un mazo'. Lo cual no es realmente divertido ni para la hormiga ni para el martillo. – Perception

2

Sí, el bufferperder solo tomará Strings. necesita convertirlos a int o double según sea necesario usando Integer.parseInt (valor) o Double.parseDouble (valor)

+0

¿Está bien y cómo puede pedir dos entradas de cadena en la misma línea? –

+0

con Escáner, podría usar la función scan.next() pero con bufferReader? Gracias –

+0

Las líneas se distinguen en función de "\ n" que es enter. – tazo

1

BufferedReader básicamente toma un flujo de entrada como argumento.

Tienes que usar métodos incorporados para analizar la cadena en ints and doubles.

igual:

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

¿podría decirme cómo solicitar dos entradas de cadena en la misma línea? gracias –

Cuestiones relacionadas