Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Susana83 en 09 de Agosto 2011, 13:48
-
Me gustaría saber cómo puedo capturar datos por el teclado en el lenguaje java.
Muchas gracias
-
Muy buenas Susana83.
Para leer datos se usa:
BufferedReader bf = new BufferedReader (new InputStreamReader(System.in));
String linea = bf.readLine();
Ahora la variable linea contiene la cadena de caracteres que hemos introducido por teclado.
Un saludo.
-
La línea del readLine puede lanzar Excepciones, es por ello que hay que meterla entre instrucciones try/catch para poder gestionar el posible error:
String línea;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
línea = br.readLine();
}catch(Exception e){ e.printStackTrace();}
System.out.println(línea); // Con esta imprimimos los datos que introducimos por el teclado.
-
Yo prefiero usar la clase Scanner. Es propia de las versiones más recientes de java y es más fácil de usar que BufferedReader aunque supongo que cada cual usa aquello a lo que está más acostumbrado
-
Hola javi in the sky, el problema que veo en el uso de la clase Scanner, es que dicha clase está a partir de la versión 5 de java y, por lo tanto, en los servidores cuya versión sea inferior a la que comento, dicha clase no existe.
Un saludo.
-
Oracle ha sacado la versión Java SE 7 de Java a finales de julio de este año... todavía está calentita, después de varios años de preparativos. Me imagino yo que la mayor parte de la gente ya estará con la 5 o superior... aunque la verdad es que en servidores java no ando muy puesto.
-
Y ya que estamos con el tema, otra forma de pedir entradas por teclado. No es lo más elegante, pero funcionar funciona ;):
import java.io.*;
public class TestEntradaTeclado {
public static void main (String [] args){
System.out.println ("Empezamos el programa");
System.out.println ("Por favor introduzca una cadena por teclado:");
String entradaTeclado = "";
while (true) { //Bucle que se repite indefinidamente hasta que se produce una salida forzada por un break
try {
int tmp = System.in.read (); /*System.in se considera una forma poco elegante e ineficiente
de pedir entradas por teclado; pero funcionar funciona*/
if (tmp == 10) break; //10 es el valor numérico de la tecla enter en código ascii
char c = (char) tmp; //Transformamos el entero tmp en un char
entradaTeclado = entradaTeclado + c; //Ampliamos la cadena mientras no sea un enter
} catch (IOException e) {
//No establecemos tratamiento de errores
}
} //cierre del while
System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
}
}
-
Código ejemplo de uso de la clase Scanner para entradas de teclado:
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca java
//Código de nuestra clase principal
public class TestPrograma1 {
public static void main (String [ ] args) {
System.out.println ("Por favor introduzca su nombre y apellidos:");
String entradaTeclado = "";
Scanner entradaEscaner = new Scanner (System.in); //Creación de un objeto Scanner
entradaTeclado = entradaEscaner.nextLine (); //Invocamos un método sobre un objeto Scanner
System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado +"\"");
} //Cierre del main
} //Cierre de la clase
-
Very interesting... gracias. Dado que se están animando, si encuentro alguna forma más la pondré por aquí para hacer más grande la colección ???
-
Para todos los interesados: ya estamos colgando en la web (aprenderaprogramar.com --> Cursos) un nuevo curso sobre Java denominado "Aprender programación Java desde cero". Este curso puedo asegurar que no defraudará a todo aquel que empieza desde cero en Java porque tiene un planteamiento completamente sencillo y didáctico, de lo mejor que he visto para llegar a comprender la programación orientada a objetos.