Seguidores

MIS WEBS



miércoles, 18 de abril de 2018

CLONAR ARCHIVOS DE BYTES CON JAVA


Uso de archivos de bytes (Streams Byte)


 En anteriores artículos 👈hemos visto como copiar y pegar archivos pasando por un Buffer . Ahora vamos a aprender de hacer lo mismo con archivos de bytes.

¿Para qué usamos los archivos de bytes?


Cualquier tipo de archivo puede convertirse en un archivo de Byte (videos, audios, textos, pdf, BBDD) y un archivo byte es mucho más comprimido, esto nos permite enviar nuestros archivos y recibirlos desde java con mayor celeridad.



Para poder manipular los archivos de bytes nos resultarán necesarias las clases:

·         FileImputStream

o   Read() : Este método leera los bytes que hay en un archivo y acuado leea el útimo de ellos nos lanzará un -1.
o   Close(): Este método lo utilizaremos para cerrar la conexión al archivo

·         FileOutpuutStream

o   Write()
o   Close()



Copiar y pegar un archivo de Bytes.


Para realizar este ejemplo vamos a escoger una foto en formato jpg. Nos resulta indiferente y podríamos haber escogido cualquier otro tipo de archivo video, bbdd o lo que desees ya que para clonador tan solo necesitamos saber sus bytes.


Instanciareos FileinputStream para acceder y leer el archivo. Y recorremos con un while hasta que el método read() nos regrese -1 valor que regresa cuando llega al final del último byte.

public void ClonadorDeBytes() {
             try {
FileInputStream Lectura_Bytes = new FileInputStream("C:\\Users\\e\\Desktop\\v/prueba archivo bytes.jpg");
             int miByte = Lectura_Bytes.read();
             while (Lectura_Bytes.read() != -1)   System.out.println(Lectura_Bytes.read());
             Lectura_Bytes.close();
             }catch(IOException e){
                    e.getMessage();
                   
             }
       }

Cargamos los datos obtenidos en un Arraylist para trabajar con ellos:

       public void ClonadorDeBytes() {        
             try {       
             List cargabytesi = new ArrayList();
             FileInputStream Lectura_Bytes = new FileInputStream("C:\\Users\\dagip\\Desktop\\x/prueba archivo bytes.jpg");
             int miByte = Lectura_Bytes.read();
             //Mientras que el byte read() sea diferente a -1 imprimelo
             while (Lectura_Bytes.read() != -1) { //cargamos los registros en el arrayList
                    cargabytesi.add(Lectura_Bytes.read()); 
             }
             Iterator x = cargabytesi.iterator();
        while(x.hasNext()) {//recorremos el array list para imprimirlos
             System.out.println(x.next());
        }

            
             Lectura_Bytes.close();
             }catch(IOException e){
                    e.getMessage();
                   
             }



Vamos a copiar los datos y con ellos crear un nuevo archivo.  Para ello utilizaremos FileOutputStream con su método Write y posterior mente cerraremos los FileOutputStream y FileinputStream para liberar memória de nuestro ordenador.

public class Lectura1 {
       public static void main(String[] args) {
             archivo_de_Bytes clonarArchivo = new archivo_de_Bytes();
             clonarArchivo.ClonadorDeBytes(); 
       }
}
class archivo_de_Bytes{
       public void ClonadorDeBytes() {        
             try {       
FileInputStream Lectura_Bytes = new FileInputStream("C:\\Users\\dagip\\Desktop\\x/prueba archivo bytes.jpg");
FileOutputStream escritura_Bytes = new FileOutputStream ("C:\\Users\\x\\Desktop\\x/foto copiada por java3.jpg");
             int miByte =0;
             boolean si_NO=true;
             int contador =0;
//Mientras que el byte read() sea diferente a -1 grabalo en FileInputStream
             while (miByte != -1) {
                    miByte= Lectura_Bytes.read();
                    if (miByte != -1) {
                    escritura_Bytes.write(miByte);
                    }
             }
             Lectura_Bytes.close();escritura_Bytes.close();
             }catch(IOException e){
                    e.getMessage();
                   
             }
       }
  }
}



Si te gusta este articulo recuerda dar al 👍 para poder saber si os gusta.








No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital