Nombre d'octets dans le tableau d'octets
J'ai un tableau byte[] arr
;
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] arr = out.toByteArray();
Comment puis-je mesurer la taille des données en arr (si c'était écrit sur le disque ou transférées via le réseau)?
Sont ci-dessous approches sont corrects - ils supposer que sizeof(byte) = 1B
int byteCount = out.size();
int byteMsgCount = arr.length;
Vous devez vous connecter pour publier un commentaire.
Oui, par définition, de la taille d'une variable de type
byte
est un octet. Donc la longueur de votre tableau est en effetarray.length
octets.out.size()
vous donnera la même valeur, c'est à dire le nombre d'octets que vous avez écrit dans le flux de sortie.[Modifier] à Partir de cricket_007 commentaire: si vous regardez à la mise en œuvre de
size
ettoByteArray
... donc
toByteArray
essentiellement des copies de la mémoire tampon de sortie actuelles, jusqu'àcount
octets. Donc à l'aide desize
est une meilleure solution.toByteArray()
, il retourne un nouveau tableau jusqu'à la valeur de la valeur de retour desize()
, donc à moins que le tableau est nécessaire, puissize()
aurait la préférence de l'appel de méthode.