Entrada y Salida Java
Una de las operaciones mas habituales que tiene que realizar un programa java es intercambiar datos con el exterior. Para ello, el paquete java.io de J2SE incluye una serie de clases que permiten gestionar la entrada y salida de datos en un programa.
Principales clases para realizar entrada y salida de datos
Salida de datos.
El envió de datos al exterior se gestiona a través de la clase PrintStream, utilizándose un objeto de la misma para acceder al dispositivo de salida. Posteriormente, con los métodos de la clase, podemos envíar información al exterior.
El envió de datos al exterior se gestiona a través de la clase PrintStream, utilizándose un objeto de la misma para acceder al dispositivo de salida. Posteriormente, con los métodos de la clase, podemos envíar información al exterior.
Proceso de envió de datos a la salida:
- Obtención del objeto PrintStream. Se debe crear un objeto PrintStream asociado al dispositivo de salida. La clase System proporciona el atributo estático out que contiene una referencia al objeto PrintStream.
- Envió de datos al stream. La clase PrintStream dispone de los métodos print(String cadena) y println(String cadena) para enviar una cadena al dispositivo de salida.
Entrada de datos.
La lectura de datos del exterior se gestiona a través de la clase InputStream. Un objeto InputStream esta asociado a un dispositivo de entrada estándar ( el teclado) podemos acceder al mismo a través del atributo estático in de la clase System.
Sin embargo, el método read () proporcionado por InputStream para la lectura de los datos no nos ofrece la misma potencia que print o println para la escritura. La llamada read () revuelve el ultimo carácter introducido a través de dispositivo, esto significa que par leer una cadena completa seria necesario hacerlo carácter a carácter lo que haría ineficiente el código.
Por ello, para realizar la lectura de cadena de caracteres desde el exterior e muy preferible utilizar clases del paquete java.io: la clase BufferedReader.
Pasos para la lectura de datos mediante BufferedReader:
Sin embargo, el método read () proporcionado por InputStream para la lectura de los datos no nos ofrece la misma potencia que print o println para la escritura. La llamada read () revuelve el ultimo carácter introducido a través de dispositivo, esto significa que par leer una cadena completa seria necesario hacerlo carácter a carácter lo que haría ineficiente el código.
Por ello, para realizar la lectura de cadena de caracteres desde el exterior e muy preferible utilizar clases del paquete java.io: la clase BufferedReader.
Pasos para la lectura de datos mediante BufferedReader:
- Crear objeto InputStreamReader. Este objeto permite convertir los bytes recuperados del stream de entrada en caracteres. Para crear un objeto de esta clase, es necesario indicar el objeto InputStream de entrada, como la entrada de este objeto es el teclado, este objeto lo tenemos referenciado en el atributo estático "in" de la clase System:
- Creación del objeto BufferedReader. A partir del objeto anterior se puede construir un objeto BufferedReader para la lectura de cadenas:
- Invocar al método readLine (). El método readLine() de BufferedReader devuelve todos los caracteres introducidos hasta el salto de linea.
Practica 1:
Elaborar un programa para calcular el promedio de 3 calificaciones ingresadas por el usuario utilizando la clase BufferedReader.
Elaborar un programa para calcular el promedio de 3 calificaciones ingresadas por el usuario utilizando la clase BufferedReader.
Scanners
La clase Scanner proporciona una serie de métodos parra realizar la lectura de datos desde un dispositivo de entrada o fichero, tanto en forma de cadena de caracteres como en cualquier tipo básico.
Creación de un objeto Scanner:
Creación de un objeto Scanner:
La cadena de caracteres introducida por teclado hasta la pulsación de la tecla "enter" esta dividida por el objeto Scanner en un conjunto de bloques de caracteres de longitud variable, denominados tokens. de forma predeterminada el caracter utlilizado como separador de token es el espacio blanco.
División de caracteres en tokens
Utilizando los métodos de esta clase es posible recuperar secuencialmente cada uno de estos tokens, e incluso convertirlos implícitamente a un determinado tipo de datos.
Principales métodos de la clase Scanner:
Tipo de dato devuelto
|
Método
|
Descripción
|
String
|
next()
|
Devuelve el siguiente token.
|
boolea
|
hasNext()
|
Indica si existe o no un nuevo token para leer.
|
xxx
|
nextXxx()
|
Devuelve el siguiente token como un tipo básico siendo Xxx el nombre de este tipo básico. Por ejemplo, nextInt() para lectura de un entero o nextFloat() para la lectura de un float.
|
boolean
|
hasNextXxx()
|
Indica si existe o no un siguiete token del tipo especificado, siendo Xxx el nombre del tipo.
|
void
|
useDelimiter(String d)
|
Establece un nuevo delimitador de token.
|
Practica 1:
Realizar un programa que solicite al usuario su nombre y su numero personal y lo muestre en pantalla (haciendo uso de la clase Scanner).
Ejercicio :
Realizar un programa que pregunte su nombre, edad y domicilio y los muestre en pantalla.
Cualquier duda mencionarla en comentarios, gracias por su visita.
No hay comentarios:
Publicar un comentario