第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在節(jié)點中追加文件?

如何在節(jié)點中追加文件?

拉莫斯之舞 2019-07-26 15:14:27
如何在節(jié)點中追加文件?我在試著附加日志文件的字符串。但是,寫文件在編寫字符串之前每次都會刪除內(nèi)容。fs.writeFile('log.txt', 'Hello Node', function (err) {   if (err) throw err;   console.log('It\'s saved!');}); // => message.txt erased, contains only 'Hello Node'知道怎么用簡單的方法嗎?
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

對于偶爾追加的內(nèi)容,您可以使用appendFile,它在每次調(diào)用文件句柄時都會創(chuàng)建一個新的文件句柄:

異步:

const fs = require('fs');fs.appendFile('message.txt', 'data to append', function (err) {
  if (err) throw err;
  console.log('Saved!');});

同步:

const fs = require('fs');fs.appendFileSync('message.txt', 'data to append');

但是,如果您重復(fù)添加到同一個文件,則最好是重用文件句柄.



查看完整回答
反對 回復(fù) 2019-07-27
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

當(dāng)您想要寫入日志文件,即將數(shù)據(jù)附加到文件的末尾時,絕不可能使用appendFileappendFile為添加到文件中的每一段數(shù)據(jù)打開一個文件句柄,一段時間后,您會得到一個漂亮的文件句柄。EMFILE錯誤。

我可以說appendFile使用起來并不比WriteStream.

例舉appendFile:

console.log(new Date().toISOString());[...Array(10000)].forEach( function (item,index) {
    fs.appendFile("append.txt", index+ "\n", function (err) {
        if (err) console.log(err);
    });});console.log(new Date().toISOString());

在我的計算機上最多可達8000,您可以將數(shù)據(jù)附加到文件中,然后獲得以下信息:

{ Error: EMFILE: too many open files, open 'C:\mypath\append.txt'
    at Error (native)
  errno: -4066,
  code: 'EMFILE',
  syscall: 'open',
  path: 'C:\\mypath\\append.txt' }

此外,appendFile將在啟用時寫入,因此您的日志不會使用時間戳編寫。您可以用示例測試,設(shè)置1000代替100000,順序?qū)⑹请S機的,取決于對文件的訪問。

如果要附加到文件中,則使用這樣的可寫流:

var stream = fs.createWriteStream("append.txt", {flags:'a'});console.log(new Date().toISOString());[...Array(10000)].forEach( function (item,index) {
    stream.write(index + "\n");});console.log(new Date().toISOString());stream.end();

你想結(jié)束就結(jié)束吧。你甚至不需要使用stream.end(),默認選項為AutoClose:true因此,當(dāng)進程結(jié)束時,您的文件將結(jié)束,并且避免打開太多的文件。




查看完整回答
反對 回復(fù) 2019-07-27
?
蠱毒傳說

TA貢獻1895條經(jīng)驗 獲得超3個贊

使用createWriteStream的代碼為每次寫入創(chuàng)建一個文件描述符。因為它要求節(jié)點在寫入后立即關(guān)閉,因此log.end更好。


var fs = require('fs');

var logStream = fs.createWriteStream('log.txt', {'flags': 'a'});

// use {'flags': 'a'} to append and {'flags': 'w'} to erase and write a new file

logStream.write('Initial line...');

logStream.end('this is the end line');



查看完整回答
反對 回復(fù) 2019-07-27
  • 3 回答
  • 0 關(guān)注
  • 520 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號