यह Google पर उच्च स्तर पर आता है, इसलिए मैं मूल प्रश्न (जोर मेरा) के बारे में कुछ प्रासंगिक जानकारी जोड़ना चाहता हूं:
Node.js की fs.readFile () स्ट्रिंग के बजाय बफर क्यों लौटाती है?
क्योंकि फाइलें हमेशा टेक्स्ट नहीं होती हैं
भले ही आप प्रोग्रामर के रूप में यह जानते हों: नोड को पता नहीं है कि उस फ़ाइल में क्या है जिसे आप पढ़ने की कोशिश कर रहे हैं। यह एक पाठ फ़ाइल हो सकती है, लेकिन यह सिर्फ एक ज़िप संग्रह या एक JPG छवि हो सकती है - नोड पता नहीं है।
क्योंकि पाठ फ़ाइलों को पढ़ना मुश्किल है
यहां तक कि अगर नोड को पता था कि यह एक पाठ फ़ाइल को पढ़ना है, तब भी यह पता नहीं होगा कि कौन से वर्ण एन्कोडिंग का उपयोग किया जाता है (यानी फ़ाइल मैप में बाइट मानव-पठनीय वर्णों के लिए), क्योंकि वर्ण एन्कोडिंग स्वयं फ़ाइल में संग्रहीत नहीं है ।
अधिक या कम आत्मविश्वास के साथ पाठ फ़ाइलों के चरित्र एन्कोडिंग का अनुमान लगाने के तरीके हैं (यह एक फ़ाइल खोलने पर पाठ संपादक क्या करते हैं), लेकिन आप आमतौर पर अपने कोड को अपने स्पष्ट निर्देश के बिना अनुमानों पर भरोसा नहीं करना चाहते हैं।
बचाव के लिए बफर!
इसलिए, क्योंकि यह इन सभी विवरणों को नहीं जानता है और न ही बता सकता है, नोड केवल अपनी सामग्री के बारे में कुछ भी ग्रहण किए बिना, बाइट के लिए फ़ाइल बाइट पढ़ता है।
और यह है कि लौटा हुआ बफर क्या है: कच्चे द्विआधारी सामग्री के लिए एक अनोपिनियेटेड कंटेनर। डेवलपर के रूप में इस सामग्री की व्याख्या कैसे की जानी चाहिए।