Bu Google'da yüksek geliyor, bu yüzden orijinal soru hakkında bazı bağlamsal bilgiler eklemek istiyorum (benimki vurgu):
Node.js 'fs.readFile () neden dize yerine bir arabellek döndürüyor?
Çünkü dosyalar her zaman metin değildir
Bile size programcı bildiğimiz: Düğüm okumak çalıştığınız dosyanın içinde ne bir fikri yok. Bir metin dosyası olabilir, ancak bir ZIP arşivi veya bir JPG görüntüsü de olabilir - Düğüm bilmiyor.
Çünkü metin dosyalarını okumak zor
Düğüm bir metin dosyasını okuduğunu bilse bile , hangi karakter kodlamasının kullanıldığına dair hiçbir fikre sahip olmayacaktır (yani dosyadaki baytların insan tarafından okunabilir karakterlerle nasıl eşleştiği), çünkü kodlamanın kendisi dosyada saklanmaz .
Metin dosyalarının az ya da çok güvenle karakter kodlamasını tahmin etmenin yolları vardır (bir dosyayı açarken metin editörlerinin yaptığı şeydir), ancak genellikle kodunuzun açık talimatınız olmadan tahminlere güvenmesini istemezsiniz.
Kurtarmaya tamponlar!
Bu nedenle, tüm bu ayrıntıları bilmediği ve bilemediği için Düğüm, içeriği hakkında hiçbir şey varsaymadan sadece bayt için dosya baytını okur.
Döndürülen arabellek de budur: ham ikili içerik için açılmamış bir kap. Bu içeriğin nasıl yorumlanması gerektiği geliştirici olarak size bağlıdır.