Un stream es una secuencia ordenada de datos. Estos datos pueden ser caracteres (caracteres Unicode de 16 bits) o bytes (8 bits).
Ejemplo 1 Lectura de byte
import java.io.*; public class EjemploLecturaByte{ public static void main(String[] args){ //FileInputStream lee archivos FileInputStream fis = null; int aux = 0; try{ //Se define el archivo a leer fis = new FileInputStream("C:\\eclipse\\readme\\readme_eclipse.html"); //read lee el siguiente flujo de bytes y cuando alcanza el final devuelve -1 while((aux = fis.read()) != -1) System.out.println(aux + " - " + (char)aux); } catch(FileNotFoundException e){ //control de errores //printStackTrace te dice el tipo de excepción y donde sucedio. e.printStackTrace(); } catch(IOException e){ //control de errores e.printStackTrace(); } // conjunto de instrucciones necesarias tanto si se produce error o excepción // como si no y que por tanto se ejecuta siempre. finally{ try{ //cerrar el archivo fis.close(); } catch(IOException e){ //control de errores e.printStackTrace(); } } } }
Ejemplo 2 Escritura de byte
import java.io.*; public class EjemploEscrituraByte{ public static void main(String[] args){ //FileOutputStream escribe en archivos FileOutputStream fos = null; int aux = 0; try{ //Se define el archivo a escribir fos = new FileOutputStream("D:\\Prueba.txt"); //Escribe su contenido en el archivo fos.write(67); fos.write(76); fos.write(67); fos.write(32); } catch(FileNotFoundException e){ // control de errores e.printStackTrace(); } catch(IOException e){ // control de errores e.printStackTrace(); } finally{ //hacer siempre try{ //cierra el archivo fos.close(); } catch(IOException e){ // control de errores e.printStackTrace(); } } } }
Ejemplo 3 Flujo con array
import java.io.*; public class EjemploFlujoArray{ //se trabaja con las excepciones de forma automatica public static void main(String[] args) throws IOException{ //array de bytes byte[] byteArr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; //ByteArrayInputStream lee un array de bytes //Se define el array de bytes a leer ByteArrayInputStream flujoArrByte1 = new ByteArrayInputStream(byteArr1); //available devuelve el numero de bytes while(flujoArrByte1.available() != 0){ //lee el byte byte leido = (byte) flujoArrByte1.read(); System.out.println(leido); } //cierra el array de bytes flujoArrByte1.close(); } }
Ejemplo 4 Streams sobre ficheros
import java.io.*; public class Copia{ public static void main(String[] args){ FileInputStream origen = null; FileOutputStream destino = null; try{ origen = FileInputStream(args[0]); // true escribe sobe el fichero sin borrar lo anterior. destino = new FileOutputStream(args[1], true); // lee el siguiente flujo de bytes y lo devuelve como un entero int i = origen.read(); // cuando read termina el flujo de bytes devuelve -1 while(i != -1){ //escribe el byte leido destino.write(i); //lee el siguiente byte i = origen.read(); } origen.close(); destino.close(); } catch(IOException e){ // control de errores System.out.println("Error de ficheros"); } } }
0 comentarios:
Publicar un comentario