java.net.URL lê fluxo para byte []
Estou tentando ler uma imagem de uma URL (com o pacote javajava.net.URL) para um byte []. "Tudo" funciona bem, exceto pelo fato de o conteúdo não estar sendo totalmente lido a partir do fluxo (a imagem está corrompida, não contém todos os dados da imagem) ... A matriz de bytes está sendo mantida em um banco de dados (BLOB). Eu realmente não sei qual é a abordagem correta, talvez você possa me dar uma dica :)
Esta é a minha primeira abordagem (código formatado, informações desnecessárias removidas ...):
URL u = new URL("http://localhost:8080/images/anImage.jpg");
int contentLength = u.openConnection().getContentLength();
Inputstream openStream = u.openStream();
byte[] binaryData = new byte[contentLength];
openStream.read(binaryData);
openStream.close();
Minha segunda abordagem foi essa (como você verá o comprimento do conteúdo está sendo buscado de outra maneira):
URL u = new URL(content);
openStream = u.openStream();
int contentLength = openStream.available();
byte[] binaryData = new byte[contentLength];
openStream.read(binaryData);
openStream.close();
Tanto o código resulta em uma imagem corrompida ... Eu já li este postde stackoverflow