Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Hater7- en 5 Enero 2017, 21:20 pm



Título: [Java] Consulta leer datos de Teclado
Publicado por: Hater7- en 5 Enero 2017, 21:20 pm
Tengo una consulta a aquel que tenga una respuesta.
Hace unos años hice un curso de Java Básico, en el cual me explicaron que, para tomar datos del Teclado, primero se hace el import.

Código:
import java.util.*;

Después, el código del Scanner, sería...

Código:
public static void main(String[] args) {
        int num = 0;
        Scanner Teclado = new Scanner(System.in);
        System.out.println("numero:" +num);
        num = Teclado.nextInt();
        System.out.println(num);
}

Ahora, el problema mío, es el siguiente: Estuve re-leyendo tutoriales de Java para repasar y volver a programar, cuando me encuentro con una nueva forma de tomar datos del Teclado.

Código:
import java.io.*;

Código:
String Texto;

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

try{
     Texto = buffer.readLine();
}catch (IOException e)();

La duda es; cuál es la diferencia entre estas dos formas de tomar datos del Teclado, cuáles son sus usosy si hay otras. Si me pueden explicar o referir a algún texto, post, lo que sea, en donde me pueda instruir, porque he leído varios tutoriales pero, o veo el Scanner o veo el InputStreamReader, pero no puedo dar con uno que explique los dos y sus diferencias.

Muchas gracias a todos los que me ayuden! Y a los que no, gracias igual por leer!


Título: Re: [Java] Consulta leer datos de Teclado
Publicado por: ivancea96 en 5 Enero 2017, 22:13 pm
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html (http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html)
https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html (https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html)

Lo primero que diré es: Usa el que más te convenga en cada momento, o al que mejor partido le saques. Hay ilimitadas formas de sacar leer datos de un stream, como es System.in, esas son 2 posibilidades.

Por poner diferencias, el Scanner tiene para leer int, float, palabras, etc... mientras que BufferedReader se limita a leer lineas. (A parte de todas las demás funciones que tienen ambos).

Si buscas algo rápido, yo te diría que utilices el Scanner. Pero es tu decisión.


Título: Re: [Java] Consulta leer datos de Teclado
Publicado por: Hater7- en 5 Enero 2017, 22:23 pm
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html (http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html)
https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html (https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html)

Lo primero que diré es: Usa el que más te convenga en cada momento, o al que mejor partido le saques. Hay ilimitadas formas de sacar leer datos de un stream, como es System.in, esas son 2 posibilidades.

Por poner diferencias, el Scanner tiene para leer int, float, palabras, etc... mientras que BufferedReader se limita a leer lineas. (A parte de todas las demás funciones que tienen ambos).

Si buscas algo rápido, yo te diría que utilices el Scanner. Pero es tu decisión.

Muchas gracias por tu respuesta ivancea96!!! La verdad ya estoy acostumbrado al Scanner pero me gustaría saber acerca de las otras opciones para poder usarlas según la conveniencia del momento/situación.

Me voy a poner a leer esas Webs e investigar acerca del tema! Muchas gracias! =D