2016-02-03 13 views
9

node.jsのテキストファイルに書き込もうとしています。 はイムは、この次の方法をやって:文字列に対し、Node.jsのファイルを上書きする

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

は可変です。

この関数は、ファイルの先頭に常に書き込むので、前のコンテンツを上書きします。

私は次のような場合に問題があります。

:今、以下の内容をファイルになります

Hi Stackoverflow 

古いコンテンツ:

Hello Stackoverflow 

新しい書き込みを

Hi stackoverflowlow 

新しいwr以前のコンテンツよりも短かったので、古いコンテンツの一部は依然として永続的です。

私の質問:

何新しい書き込みが行われる前に、ファイルの古い内容を完全に除去されるように、私は、何をする必要がありますか?

+0

は、公式ドキュメントを見てみましょう(同期バージョン、投げるかもしれません) writeStream、somehtingなどのオプションを指定します。 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) 

、あなたがのために何かを見つけるでしょう

関連する問題