Saltar al contenido

Convertir InputStream (Imagen) a ByteArrayInputStream

Te damos la bienvenida a nuestra página, en este sitio vas a hallar la resolución de lo que buscabas.

Solución:

Lea desde el flujo de entrada y escriba en un ByteArrayOutputStream, luego llame a su toByteArray() para obtener el byte array.

Crea un ByteArrayInputStream alrededor del byte array para leer de él.

Aquí hay una prueba rápida:

import java.io.*;

public class Test 


       public static void main(String[] arg) throws Throwable 
          File f = new File(arg[0]);
          InputStream in = new FileInputStream(f);

          byte[] buff = new byte[8000];

          int bytesRead = 0;

          ByteArrayOutputStream bao = new ByteArrayOutputStream();

          while((bytesRead = in.read(buff)) != -1) 
             bao.write(buff, 0, bytesRead);
          

          byte[] data = bao.toByteArray();

          ByteArrayInputStream bin = new ByteArrayInputStream(data);
          System.out.println(bin.available());
       

Puede usar org.apache.commons.io.IOUtils#toByteArray(java.io.InputStream)

InputStream is = getMyInputStream();
ByteArrayInputStream bais = new ByteArrayInputStream(IOUtils.toByteArray(is));

O primero convertirlo a un byte arrayluego a un bytearrayinputstream.

File f = new File(arg[0]);
InputStream in = new FileInputStream(f);
// convert the inpustream to a byte array
byte[] buf = null;
try 
    buf = new byte[in.available()];
    while (in.read(buf) != -1) 
    
 catch (Exception e) 
    System.out.println("Got exception while is -> bytearr conversion: " + e);

// now convert it to a bytearrayinputstream
ByteArrayInputStream bin = new ByteArrayInputStream(buf);

Si te gustó nuestro trabajo, tienes la habilidad dejar una división acerca de qué te ha impresionado de esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *