नोड बिल्ट-इन के माध्यम से आपके सिस्टम में फाइलों को लिखने के लिए विभिन्न विकल्प प्रदान करता है एफ एस ओ मापांक। इसमे शामिल है राइटफाइल (), एपेंडफाइल (), तथा क्रिएटवाइटस्ट्रीम ().

कई भाषाओं की तरह, Node.js आपको किसी मौजूदा फ़ाइल को अधिलेखित करने या उसमें संलग्न करने के बीच चयन करने देता है। आपको फ़ाइल को एक बार में लिखने और उसे स्ट्रीम करने के बीच के ट्रेडऑफ़ के बारे में भी सीखना चाहिए।

राइटफाइल का उपयोग करना ()

राइटफाइल () शायद सबसे आसान तरीका है जिसका उपयोग आप Node.

fs.writeFile (फ़ाइल नाम, डेटा, कॉलबैक)

यहां एक उदाहरण दिया गया है जिसमें दिखाया गया है कि राइटफाइल () का उपयोग करके एक सादा पाठ फ़ाइल कैसे बनाई जाती है। आप निश्चित रूप से बना सकते हैं अन्य फ़ाइल प्रकार जैसे सीएसवी या JSON.

स्थिरांक एफएस = ज़रूरत होना("एफएस")

fs.writeFile ("test.txt", "नई सामग्री", त्रुटि => {
यदि (गलती) {
सांत्वना देनालॉग (गलती)
}
});

राइटफाइल() उपरोक्त उदाहरण में कॉलबैक का उपयोग करने के बजाय async/प्रतीक्षा करें का समर्थन करता है, आप निम्नानुसार फ़ाइल बना सकते हैं।

स्थिरांक एफएस = ज़रूरत होना("एफएस")।वादे

अतुल्यकालिकसमारोहराइट टूफाइल()

instagram viewer
{
प्रयत्न {
इंतजार fs.writeFile("test.txt", "New cont")
} पकड़ (गलती) {
सांत्वना देनालॉग (गलती);
}
}

राइटटोफाइल ()

डिफ़ॉल्ट रूप से, राइटफाइल () फ़ाइल मौजूद होने पर निर्दिष्ट फ़ाइल की सामग्री को नई सामग्री के साथ बदलकर काम करता है। हालांकि ऐसे झंडे हैं जिनका उपयोग आप इस कार्यक्षमता को ओवरराइड करने के लिए कर सकते हैं जैसे:

  • आर+ - पढ़ने और लिखने के लिए फ़ाइल खोलता है।
  • डब्ल्यू+ - फ़ाइल की शुरुआत में पढ़ने और लिखने के लिए फ़ाइल खोलता है
  • एक - फाइल के अंत में लिखने के लिए फाइल को खोलता है।
  • ए+ - फ़ाइल के अंत में पढ़ने और लिखने के लिए फ़ाइल खोलता है।

उदाहरण के लिए, आप इस तरह a+ ध्वज का उपयोग कर सकते हैं:

स्थिरांक एफएस = ज़रूरत होना("एफएस")

fs.writeFile ("test.txt", "नई सामग्री", { झंडा: "ए+"}, ग़लती => {
यदि (गलती) {
सांत्वना देनालॉग (गलती)
}
});

कई अन्य फाइल सिस्टम झंडे हैं जिनके बारे में आप सीख सकते हैं एफएस मॉड्यूल के लिए नोड प्रलेखन.

एफ एस ओ मॉड्यूल भी प्रदान करता है राइटफाइलसिंक, द तुल्यकालिक संस्करण राइटफाइल ()।

स्थिरांक एफएस = ज़रूरत होना("एफएस")

fs.writeFileSync("test.txt", "नई सामग्री", { झंडा: "ए+"}, ग़लती => {
यदि (गलती) {
सांत्वना देनालॉग (गलती)
}
});

createWriteStream का उपयोग करना ()

उपयोग करने का नकारात्मक पक्ष राइटफाइल () यह है कि आपको फ़ाइल की सभी सामग्री को एक साथ संग्रहीत करना है जो बड़ी फ़ाइलों के लिए मापनीय नहीं है। क्रिएटवाइटस्ट्रीम () हालाँकि, अनुक्रमिक लेखन का समर्थन करता है। इसका मतलब है कि आप एक बार में एक फ़ाइल में डेटा का एक हिस्सा लिख ​​सकते हैं। यहाँ एक लिखने योग्य धारा बनाने की सामान्य प्रणाली है।

fs.createWriteStream (पथ, विकल्प)

नीचे दिया गया कोड स्ट्रीम का उपयोग करके टेक्स्ट फ़ाइल में डेटा लिखता है

स्थिरांक एफएस = ज़रूरत होना("एफएस")

// एक लिखने योग्य स्ट्रीम बनाएं
होने देना लिखने योग्य स्ट्रीम = fs.createWriteStream ("test.txt")

// लिखने योग्य स्ट्रीम का उपयोग करके फ़ाइल में लिखें
writeableStream.write ("नई सामग्री");

यहां एक और उदाहरण दिखाया गया है कि आप डेटा को लिखने योग्य स्ट्रीम में कैसे पाइप कर सकते हैं। जब तक टर्मिनल खुला रहता है, यह प्रोग्राम टर्मिनल से test.txt फ़ाइल में सभी इनपुट लिखता है।

स्थिरांक एफएस = ज़रूरत होना("एफएस")
होने देना writableStream = fs.createWriteStream ("test.txt");
process.stdin.pipe (लिखने योग्य स्ट्रीम);

यदि आप इस प्रोग्राम को कमांड लाइन से चलाते हैं, तो आप इसे छोड़ सकते हैं Ctrl + डी या Ctrl + सी.

आप किसी अन्य फ़ाइल से लिखने योग्य स्ट्रीम में भी लिख सकते हैं। निम्नलिखित उदाहरण पर विचार करें:

स्थिरांक एफएस = ज़रूरत होना("एफएस")
होने देना readableStream = fs.createReadStream ("test.txt");
होने देना writableStream = fs.createWriteStream ("test2.txt");

readableStream.on ("डेटा", समारोह(टुकड़ा) {
writableStream.write (हिस्सा);
});

जिस फ़ाइल को आप कॉपी करना चाहते हैं उसकी एक पठनीय स्ट्रीम बनाने से आप उसकी सामग्री को टुकड़ों में पढ़ सकते हैं। तो प्राप्त प्रत्येक खंड के लिए, कार्यक्रम गंतव्य फ़ाइल को लिखेगा।

एपेंडफाइल का उपयोग करना ()

एपेंडफाइल () फ़ाइल के अंत में सामग्री जोड़ने का एक सीधा तरीका है। यहाँ एक उदाहरण है।

स्थिरांक एफएस = ज़रूरत होना("एफएस")

fs.appendFile ("test.txt", "जोड़ा गया सामग्री", ग़लती => {
यदि (गलती) {
सांत्वना देनात्रुटि (त्रुटि);
}
});

आप async/प्रतीक्षा का भी उपयोग कर सकते हैं।

स्थिरांक एफएस = ज़रूरत होना("एफएस")।वादे

अतुल्यकालिकसमारोहएपेंड टूफाइल() {
प्रयत्न {
इंतजार fs.appendFile ("test.txt", "जोड़ा गया सामग्री")
} पकड़ (गलती) {
सांत्वना देनालॉग (गलती);
}
}

एपेंड टॉफाइल ()

पसंद करना राइटफाइल (), appendFile का एक तुल्यकालिक संस्करण भी है:

fs.appendFileSync ("test.txt", "जोड़ा गया सामग्री");

बड़ी फ़ाइलें लिखने के लिए स्ट्रीम का उपयोग करें

इस आलेख में Node. जबकि राइटफाइल() बहुत सीधा है, यह छोटे फ़ाइल आकारों के लिए बेहतर अनुकूल है क्योंकि यह अनुक्रमिक लिखने की अनुमति नहीं देता है। यदि आप बड़ी फ़ाइलों के साथ काम कर रहे हैं, तो लिखने योग्य धाराओं का उपयोग करना बेहतर है।