Entradas Y Salidas Java
Enviado por jsalazar19 • 29 de Mayo de 2014 • 1.150 Palabras (5 Páginas) • 252 Visitas
Entrada y Salida
La entrada y salida en java se implementa en el paquete java.io y todo el código presentado en este capítulo se importa, aunque no se incluya la correspondiente sentencia import.
La E/S en java se basa en el concepto de flujo, que es una secuencia ordenada de datos que tienen una fuente (flujos de entrada) o un destino (flujos de salida). Las clases de E/S aíslan a los programadores de los detalles específicos del sistema de funcionamiento de la máquina, al tiempo que posibilitan el acceso a recursos del sistema por medio de ficheros o archivos (files).
En este capítulo vamos a ocuparnos de las clases de E/S más sencillas, dejando las otras más sofisticadas para cuando tengamos necesidad de utilizarlas.
Entrada básica: la clase InputStream
La clase abstracta InputStream declara los métodos para leer datos desde una fuente concreta y es la clasa base de la mayor parte de los flujos de entrada en java.io. Soporta los métodos siguientes:
int read() lee un sólo byte de datos y los devuelve en el rango [0..255]. Devuelve -1 cuando se alcanza el final del flujo y no puede seguir leyendo bytes.
int read(byte [] buf) lee un array de bytes hasta buf.length. Devuelve el número de bytes leidos o -1 cuando se llega al final del flujo.
int read(byte [] buf, int off, int len) lee len bytes del flujo (o los que pueda) y los coloca a partir de la posición off del array.
long skip(long count) salta hasta count bytes de entrada o hasta el final del flujo de entrada, devolviendo el número de bytes saltados.
int available() devuelve el número de bytes que están disponibles para leerse.
void close() cierra el flujo de entrada que abrió el constructor no-arg, liberando los recursos asociados a ese flujo. No es necesario invocar este método ya que el flujo se cierra cuando se destruye el objeto aunque es conveniente hacerlo ya que vuelca el buffer sobre el disco.
Salida básica: la clase OutputStream
La clase abstracta OutputStream es análoga a InputStream sólo que proporciona métodos para manejar el flujo de salida. Los métodos que incluye son:
void write(int b) escribe b como byte, que, aunque sea declarado como int es transformado a byte. Esto es porque habitualmente es el resultado de una operación previa.
void write(byte [] buf) escribe un array de bytes.
void write(byte [] buf, int offset, int count) escribe un array buf de bytes, empezando en la posición offset y escribiendo count de ellos, deteniendose antes si encuentra el final del array.
void flush() vacia el flujo de modo que los bytes que quedaran por escribir son escritos.
void close() cierra el flujo de salida liberando los recursos asociados a ese flujo.
A menos que se diga lo contrario estos métodos lanzan una excepción IOException si detectan algún error en el flujo de salida.
Salida con formato: la clase PrintStream
La clase PrintStream proporciona utilidades para dar formato a la salida. Tiene dos métodos print y println que están sobrecargados para los tipos primitivos, objetos, cadenas y arrays de caracteres. La diferencia entre ambos métodos está en que println añade un carácter de nueva línea. Además el método println además puede llamarse sin argumentos, produciendo una nueva línea.
System.out es una referencia a PrintStream. PrintStream proporciona dos constructores, ambos con un primer argumento de tipo OutputStream cuya diferencia está en un segundo argumento booleano que indica si debe vaciar el flujo con cada carácter de nueva línea.
Entrada y Salida de Tipos Primitivos: las clases DataInputStream y DataOutputStream
Aunque leer y escribir bytes es útil, a menudo es necesario transmitir datos de tipos primitivos dentro de un flujo. Las clases DataInputStream y DataOutputStream proporcionan métodos para la
...