En este post voy a explicar el uso de las principales funciones de entrada y salida de Java. Cualquier programa java que ejecute procesos de entrada y salida, requiere de un stream. La traducción de stream sería algo así como corriente o flujo, no voy a traducirlo, usare directamente el término stream para referirme a un flujo de bits.

Un stream, por ejemplo, permite al usuario introducir datos desde el teclado o al ordenador, presentar los datos en la pantalla.

La clase System define 3 clases:

  • in (entrada estandard)
  • out (salida estandard)
  • err (salida de error estandard)

Salida por pantalla

Para la salida por pantalla utilizaremos la instrucción System.out. Principalmente utilizaremos dos métodos: println y print. Ambos escriben por pantalla un String que se les pasa como parámetro, el primero añade un retorno de carro al final y el segundo no.

Ejemplos:

System.out.println (“Hola Mundo”);

System.out.print(“Adios”);

 

Actividad 9.1: Practicando con println y print

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Introduce el siguiente código:
1

2

3

4

5

6

7

8

9

public class SalidaPantalla {

    public static void main(String args[]) {

      int x=10;

      int y=25;

      int z=x+y;

      System.out.println(«Salida por pantalla»);

      System.out.println(«Suma de x+y = » + z);

    }

}

Línea 6 y 7: Contiene la instrucción System.out.

Ya sabemos bien cómo funciona esta instrucción. Si ejecutamos el programa obtendremos:

Salida por pantalla

Suma de x+y = 35

Entrada por teclado

Java proporciona la clase Scanner para introducir datos por teclado.

Es necesario importar la clase al principio del programa para poder usarla en él. Lo hacemos con la palabra reservada import:

               import java.util.Scanner;

 

Para poder usar los métodos proporcionados por la clase Scanner, es necesario declarar una variable (objeto) del tipo de la clase (Scanner) relacionándolo con la entrada del teclado (System.in). De momento no hemos visto clases y objetos, cuando lleguemos a ese tema entenderemos completamente dicha declaración. Por el momento, sencillamente utilizaremos la siguiente línea de Código:

               Scanner <object name> = new Scanner(System.in)

La variable de tipo Scanner puede tener cualquier nombre, pero resulta conveniente que le pongamos uno que resulte descriptivo.

Una vez que la variable está declarada y asignada, es posible llamar a los métodos de la clase Scanner, tales como:

  • nextBoolean()
  • nextByte()
  • nextShort()
  • nextInt()
  • nextLong()
  • nextFloat()
  • nextDouble()
  • nextLine()
  • next()

Los objetos Scanners hay que cerrarlos cuando ya no vayamos a usarlos, de otro modo quedaran ocupando memoria y pudiendo ralentizar el programa. Para cerrarlos usamos el método close().

Actividad 9.2: Practicando con la clase Scanner

  1. Abre el compilador online:

https://www.jdoodle.com/online-java-compiler/

  1. Introduce el siguiente código:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

import java.util.Scanner;

 

public class ProbandoScanner {

public static void main(String[] args) {

    Scanner lector1=new Scanner(System.in);

    Scanner lector2=new Scanner(System.in);

    Scanner lector3=new Scanner(System.in);

    System.out.println(«Introduce un número: «);

    int num=lector1.nextInt();

    System.out.println(«El número tecleado es  «+num);

    System.out.println(«Introduce una palabra «);

    String palabra=lector2.next();

    System.out.println(«La palabra tecleada es «+palabra);

    System.out.println(«Introduce una frase»);

    String frase=lector3.nextLine();

    System.out.println(«La frase escrita es: «+frase);

     lector1.close();lector2.close();lector3.close();

    }

}

 

Línea 1: importamos la clase Scanner para poder utilizar todos sus métodos.

Líneas 5, 6 y 7: Declaramos e inicializamos las tres variables Scanner (objetos).

Línea 9: Usando el método nextInt ( ) del objeto lector 1, capturamos un entero introducido por el usuario usando el teclado. El valor es almacenado en la variable num.

Línea 12: Usando el método next() del objeto lector2, capturamos la palabra introducida desde el teclado. Capturamos todos los caracteres hasta que tengamos un blanco. El valor introducido es almacenado en la variable palabra.

Línea 15: Usando el método nextLine() del objeto lector 3, capturamos los caracteres introducidos por el teclado hasta dar con un salto de línea. El valor introducido es guardado en la variable frase.

  1. Antes de ejecutar el programa, tenemos que asegurarnos de que está active el modo Interactive. Para activarlo clicamos en el botón Interactive.

Modo interactivo - compilador online

  1. Ahora Podemos ejecutar el programa. Tendremos que introducir por teclado los datos que nos va pidiendo el programa que introduzcamos. Un ejemplo de ejecución para los datos: { 7, “Pedro”, “Es un poco tarde”} , sería el siguiente:

 

Introduce un número:

7

El número tecleado es 7

Introduce una palabra

Pedro

La palabra tecleada es Pedro

Introduce una frase

Es un poco tarde

La frase escrita es: Es un poco tarde

NOTA:

Este post es parte de la colección “Java” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.