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