Tradicionalmente, los usuarios del sistema operativo Unix, Linux y también MS-DOS, han utilizado un tipo de entrada/salida conocida comúnmente por entrada/salida estándar. El fichero de entrada estándar (stdin
) es típicamente el teclado. El fichero de salida estándar (stdout
) es típicamente la pantalla (o la ventana del terminal). El fichero de salida de error estándar (stderr
) también se dirige normalmente a la pantalla, pero se implementa como otro fichero de forma que se pueda distinguir entre la salida normal y (si es necesario) los mensajes de error.
Java tiene acceso a la entrada/salida estándar a través de la clase System
. En concreto, los tres ficheros que se implementan son:
Stdin
. Es un objeto de tipoInputStream
, y está definido en la claseSystem
como flujo de entrada estándar. Por defecto es el teclado, pero puede redirigirse para cada host o cada usuario, de forma que se corresponda con cualquier otro dispositivo de entrada.Stdout. System.out
implementastdout
como una instancia de la clasePrintStream
. Se pueden utilizar los métodosprint()
yprintln()
con cualquier tipo básico Java como argumento.Stderr
. Es un objeto de tipoPrintStream
. Es un flujo de salida definido en la claseSystem
y representa la salida de error estándar. Por defecto, es el monitor, aunque es posible redireccionarlo a otro dispositivo de salida.
Para la entrada, se usa el método read para leer de la entrada estándar:
int System.in.read()
;- Lee el siguiente
byte (char)
de la entrada estándar.
- Lee el siguiente
int System.in.read(byte[] b);
- Leer un conjunto de bytes de la entrada estándar y lo almacena en el vector b.
Para la salida, se usa el método print para escribir en la salida estándar:
System.out.print(String);
- Muestra el texto en la consola.
System.out.println(String);
- Muestra el texto en la consola y seguidamente efectúa un salto de línea.
Normalmente, para leer valores numéricos, lo que se hace es tomar el valor de la entrada estándar en forma de cadena y entonces usar métodos que permiten transformar el texto a números (int, float, double, etc.) según se requiera.
Método | Funcionamiento |
---|---|
byte Byte.parseByte(String) |
Convierte una cadena en un número entero de un byte |
short Short.parseShort(String) |
Convierte una cadena en un número entero corto |
int Integer.parseInt(String) |
Convierte una cadena en un número entero |
long Long.parseLong(String) |
Convierte una cadena en un número entero largo |
float Float.parseInt(String) |
Convierte una cadena en un número real simple |
double Double.parseInt(String) |
Convierte una cadena en un número real doble |
boolean Boolean.parseBoolean(String) |
Convierte una cadena en un valor lógico |