Convierte BufferedInputStream en imagen [duplicado]

Esta pregunta ya tiene una respuesta aquí:

ImageIO.read devuelve nulo en la matriz de bytes 1 respuesta

Estoy teniendo problemas para convertir mi blob en una imagen almacenada en búfer para poder usarla. Estoy recuperando un blob (imagen jpg) de mi base de datos que cargué usando inputstream. En mi base de datos se almacena como BufferedInputStream me di cuenta. Me sale bien el blob, es un montón de símbolos extraños y dice que es un jpg, así que la imagen tiene que estar bien. ¿Alguien puede detectar lo que estoy haciendo mal? Tal vez estoy convirtiendo mal? En imagen = ImageIO.read (nuevo ByteArrayInputStream (datos)); La imagen devuelve nula.

@GET
@Path("{id}")
 @Produces("image/*")
public Response post(@PathParam("id") String id) throws IOException {
    Connection con = connection();
    Blob blob = getPhoto(con);
    BufferedImage image = null;
    byte[] data = null;
    int blobLength = 0;
    try {
        blobLength = (int) blob.length();
        data = blob.getBytes(1, blobLength);
        image = ImageIO.read(new ByteArrayInputStream(data));
    //  ImageIO.write(image, "JPEG", new File("C:/Users/Nicolas/Desktop/image.jpg"));
    } catch (SQLException e2) {
        e2.printStackTrace();
    }  

    return Response.ok(image).build();
}

Cómo escribo en la base de datos

public void postPhoto(Connection con, InputStream uploadedInputStream){

String mySQL = "INSERT INTO photos (photo) values (?)";
PreparedStatement pStmt = con.prepareStatement(mySQL);
pStmt.setBlob(1, uploadedInputStream);
pStmt.execute();
}

Cómo envío el archivo a mi servlet

var fileInput = document.getElementById('file');
var file = fileInput.files[0];
var formData = new FormData();
formData.append("file", file);

var parameters="first="+firstName+"&last="+lastName+"&file="+file;

xmlhttp.open("post","http://localhost:8080/restService/api/submitinfo",true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(formData);

Respuestas a la pregunta(1)

Su respuesta a la pregunta