2016-08-18 20 views
6

Dosyaları bayt arabellekleri olarak alıyorum ve fs.stat() yöntemini kullanamıyorum. Bu yüzden buf.length'i kullanmaya çalışıyorum ancak bu uzunluk aslında nesne boyutu için değil, içerik boyutu için ayrılan bellek miktarını ifade eder. Örneğin, 22,449 bayt boyutunda bir dosyam var. buf.length bunun için 39804 değerini döndürür.nodejs'de bayt buffer'ın içeriğinin gerçek boyutunu nasıl öğrenebilirim?

+0

Düğüm 6.10.0 kullanıldığında, buf.length bana dosyanın tam bayt boyutunu verir. – bob

cevap

15

Sen byteLength gerekir:

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

düğüm 0.10.21 için bu deneyebilirsiniz:

console.log (buff.toString() uzunluğu.);

+0

Çok teşekkür ederim! Düğümün 0.10.21 için nasıl çalıştığını biliyor musunuz? – lor1an

+1

Teşekkürler, buf.toString ('ascii'). Uzunluk benim için mükemmel çalışıyor – lor1an

+1

@ lor1an cevap benim için mükemmel çalışıyor –