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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

九州編程 2019-07-22 14:55:23
如何在節(jié)點(diǎn)中追加文件?我在試著附加日志文件的字符串。但是,寫(xiě)文件在編寫(xiě)字符串之前每次都會(huì)刪除內(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'知道怎么用簡(jiǎn)單的方法嗎?
查看完整描述

3 回答

?
拉丁的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊

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

異步:

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ù)添加到同一個(gè)文件,則最好是重用文件句柄.


查看完整回答
反對(duì) 回復(fù) 2019-07-22
?
慕婉清6462132

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊

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

我可以說(shuō)appendFile使用起來(lái)并不比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());

在我的計(jì)算機(jī)上最多可達(dá)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í)寫(xiě)入,因此您的日志不會(huì)使用時(shí)間戳編寫(xiě)。您可以用示例測(cè)試,設(shè)置1000代替100000,順序?qū)⑹请S機(jī)的,取決于對(duì)文件的訪問(wèn)。

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

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(),默認(rèn)選項(xiàng)為AutoClose:true因此,當(dāng)進(jìn)程結(jié)束時(shí),您的文件將結(jié)束,并且避免打開(kāi)太多的文件。


查看完整回答
反對(duì) 回復(fù) 2019-07-22
?
慕的地8271018

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

使用createWriteStream的代碼為每次寫(xiě)入創(chuàng)建一個(gè)文件描述符。因?yàn)樗蠊?jié)點(diǎn)在寫(xiě)入后立即關(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');


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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