2016-02-03 8 views
9

मैं node.js. में एक टेक्स्ट फ़ाइल में लिखने की कोशिश कर रहा हूं। इम इस निम्नलिखित तरीके से कर रही है:Node.js में एक फ़ाइल को ओवरराइट करें

fs.writeFile("persistence\\announce.txt", string, function (err) { 
    if (err) { 
     return console.log("Error writing file: " + err); 
    } 
}); 

जबकि स्ट्रिंग एक चर है।

यह फ़ंक्शन हमेशा फ़ाइल की शुरुआत में लिखना शुरू कर देगा, इसलिए यह पिछली सामग्री को ओवरराइट करेगा।

मैं निम्नलिखित मामले में एक समस्या है:

पुरानी सामग्री:

Hello Stackoverflow 

नया लिखने:

Hi Stackoverflow 

अब निम्नलिखित सामग्री फ़ाइल में होगा:

Hi stackoverflowlow 

नई wr यह पिछली सामग्री के बाद छोटा था, इसलिए पुरानी सामग्री का हिस्सा अभी भी लगातार है।

मेरा प्रश्न:

मैं क्या करने की जरूरत है, ताकि किसी फ़ाइल की पुरानी सामग्री पूरी तरह से पहले नए लिखने किया जाता है हटा दिया जाएगा करते हैं?

+0

आधिकारिक दस्तावेज पर एक नज़र डालें, आप के लिए कुछ मिल जाएगा निश्चित रूप से, लिखना स्ट्रीम या उस तरह या किसी प्रकार का विकल्प। https://nodejs.org/api/ –

उत्तर

11

आप पहले फ़ाइल को छोटा करने की कोशिश कर सकते हैं:

fs.truncate("persistence\\announce.txt", 0, function() { 
    fs.writeFile("persistence\\announce.txt", string, function (err) { 
     if (err) { 
      return console.log("Error writing file: " + err); 
     } 
    }); 
}); 
0

वर्ष फ़ाइल का नाम बदलें और (एक नया बनाने) इसलिए एक गैर विद्यमान फाइल करने के लिए जोड़ देते हैं। इस तरह आप एक ताजा अपडेट की गई फ़ाइल ./config.json एक ओर एक बैकअप पर और दूसरी तरफ है:

fs.renameSync('./config.json', './config.json.bak') 
fs.appendFileSync('./config.json', text) 

(सिंक संस्करण, फेंक सकती है)

संबंधित मुद्दे