Bonjour,
je n'arrive pas à convertir un InputStream en byte[].
Savez vous si cela est possible ?
Merci d'avance.
Version imprimable
Bonjour,
je n'arrive pas à convertir un InputStream en byte[].
Savez vous si cela est possible ?
Merci d'avance.
Aucune méthode dans la javadoc ne permet de convertir un InputStream en tableau de bytes malheureusement...
J'avais déjà regardé ...
alors faudrait peut etre lire mieux, il y a deux méthodes qui permettent de lire dans des tableaux de byte:
read(byte[]) et read(byte[],int,int)
Oui mais mon pb n'est pas de lire dans un tableau de bytes mais bien de convertir un inputStream en tableau de bytes ..
je vois pas ce que tu veux faire d'autre pour "convertir" que de le lire dans un tableau de byte.....
En fait, voici un extrait de mon code
Et là ma méthode a besoin de retourner un tableau de bytes (correspondant à une image jpeg.Code:
1
2
3 InputStream input = connection.getInputStream();
Donc, selon toi, je dois faire :
Et là data correspondra à mon inputStream ?Code:
1
2
3 byte[] data = ??? input.read(data);
normalement, quand on lit, on boucle sur read(byte[]) avec byte[] un buffer, jusqu'à arriver à la fin du stream (voir la valeur de retour de read). A chaque étape on rempli avec çà un buffer plus grand ou on traite le truc. Ton code pourrait etre par exemple (un exemple parmis tant d'autre), en pseudo code
récupérer l'inputstream
créer un buffer temporaire
créer un bytearrayoutputstream
tant que des données sont lue dans l'inputstream, les écrire dans bytearrayoutputstream
finalement appeler toArray() sur le byteArrayoutputstream
evidement, si tu connais a l'avance la taille de tes donnée, tu fait directement un byte[] a la bonne taille et tu fait un seul et unique appel au read() avec ça. C'est plus performant...
Merci bcp M'sieur
bjr
j'aimerais savoir coment convertir un byte[] en InputStream
:cry:
Dans les apache commons IO tu as la méthode statique IOUtils.copy qui permet de copier tout un InputStream dans un OutputStream (pourquoi pas un ByteArrayOutputStream) en une commande.
Ce serait mieux que ton bricolage bizarre là.