web-dev-qa-db-fra.com

Comment connaître la taille réelle du contenu du tampon d'octets dans nodejs?

J'obtiens des fichiers sous forme de tampons d'octets et je ne peux pas utiliser la méthode fs.stat (). J'essaie donc d'utiliser buf.length mais cette longueur fait référence à la quantité de mémoire allouée à l'objet tampon et non à la taille du contenu. Par exemple, j'ai un fichier avec une taille de 22 449 octets. buf.length renvoie pour 39804 pour cela.

22
lor1an

Vous avez besoin de byteLength :

var buff = fs.readFileSync(__dirname + '/test.txt');
console.log( buff.byteLength );

Pour le noeud 0.10.21, vous pouvez essayer ceci:

console.log( buff.toString().length );
41
stdob--