Uso de archivos de bytes (Streams Byte)
¿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