1. La clase System

- Stdin
- Stdout
- Stderr

2. Clases comunes de Entrada/Salida

Los usuarios de Unix, y aquellos familiarizados con las líneas de comandos de otros sistemas como DOS, han utilizado un tipo de entrada/salida conocida comúnmente por entrada/salida estándar. El fichero de entrada estándar (stdin) es simplemente 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.

### La clase System

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

System.in implementa stdin como una instancia de la clase InputStream. Con System.in, se accede a los métodos read() y skip(). El método read() permite leer un byte de la entrada. `skip( long n )`, salta `n` bytes de la entrada.

#### Stdout

System.out implementa stdout como una instancia de la clase PrintStream. Se pueden utilizar los métodos print() y println() con cualquier tipo básico Java como argumento.

#### Stderr

System.err implementa stderr de la misma forma que stdout. Como con System.out, se tiene acceso a los métodos de PrintStream.

Vamos a ver un pequeño ejemplo de entrada/salida en Java. El código siguiente, miType.java, reproduce, o funciona como la utilidad cat de Unix o type de DOS:

        import java.io.*;

        class miType {
            public static void main( String args[] ) throws IOException {
                int c;
                int contador = 0;

                while( (c = System.in.read() ) != '\n' )
                    {
                    contador++;
                    System.out.print( (char)c );
                    }
                System.out.println();    // Línea en blanco
                System.err.println( "Contados "+ contador +" bytes en total." );
                }
            }

### Clases comunes de Entrada/Salida

Además de la entrada por teclado y salida por pantalla, se necesita entrada/salida por fichero, como son:

        FileInputStream
        DataInputStream
        FileOutputStream
        DataOutputStream

También existen otras clases para aplicaciones más específicas, que no vamos a tratar, por ser de un uso muy concreto:

        PipedInputStream
        BufferedInputStream
        PushBackInputStream
        StreamTokenizer
        PipedOutputStream
        BufferedOutputStream

|  | ##### [Anterior] [Indice] [Siguiente]