2012-01-26 841 views
7

Obtener resultados con Java es bastante fácil ya que puede hacer uso de System.out.print y similares.¿Cuál es la mejor forma de obtener entrada de consola en Java?

La entrada, por otro lado, parece un poco diferente. Algunas personas recomiendan java.util.Scanner, mientras que otros recomiendan java.io.BufferedReader, y estoy seguro de que hay muchas otras recomendaciones. Los dos métodos anteriores se usan con mayor regularidad.

Ninguno parece presentar opciones muy agradables (en mi opinión). Entonces, ¿hay alguna forma mejor de obtener entrada desde una ventana de la consola en Java? Y si no hay, ¿cuál debería elegir?

+4

[un vistazo aquí] (http://stackoverflow.com/a/930073/593709) –

+1

Tome un vistazo a [JLine] (http://sourceforge.net/projects/jline/). Es una interfaz similar a un shell de comandos con historial de comandos, finalización de TAB, etc. –

Respuesta

5

Creo que, la clase de escáner es bastante útil. Por ejemplo, con BufferedReader, tiene que leer una línea a la vez y analizar los valores. Pero en el escáner que reciben números enteros con el método nextInt(), etc.

5

me siento escáner es útil en dos aspectos,

1) you can get input from command prompt and infuture if you want to change to file system, it will be quick 

2) While reading integer inputs you don't need to parse 

. Prefiero Escáner.

1

El escáner es útil, pero es más lento que BufferedReader.

0

Para la entrada de la consola se han introducido nuevos camino desde JAVA 1,6

System.console() //using java.io.* 

que tiene opciones para readPassword() (no se mostrará carácter introducido en la consola, así que no almacene en caché) y readLine().

El escáner es la opción más fácil y buena para obtener menos entradas pero es un poco más lenta que otras opciones como console() y bufferedReader() cuando tiene tantas entradas para manejar desde la consola.

Personalmente me gusta bufferedReader(), ya que funcionará con versiones anteriores y entornos no interactivos, además es más rápido. El método console() no funciona en entornos no interactivos (es decir, un IDE).

0

Prefiero usar la consola si está utilizando Java 1.6 o más reciente.

Es simple un trazador de líneas.

String str = System.console().readLine(); 
Cuestiones relacionadas