2013-07-11 18 views

cevap

10

Açık a+ bayrağı

var fd = fs.openSync('file', 'a+'); 

Veya bir pozisyonel write kullanmak kullanarak modu ekleme dosyası. Dosyanın sonuna eklenecek edebilmek için, fs.appendFile kullanın:

fs.appendFile(fd, buf, err => { 
    // 
}); 

Yaz bir dosyanın başlangıcına:

DÜZENLEME
fs.write(fd, buf, 0, buf.length, 0); 

: Bir sanırım

yoktur Bunun için tek yöntem çağrısı. Ancak, dosyanın içeriğini kopyalayabilir, yeni veriler yazabilir ve kopyalanan verileri ekleyebilirsiniz.

var data = fs.readFileSync(file); //read existing contents into data 
var fd = fs.openSync(file, 'w+'); 
var buffer = new Buffer('New text'); 

fs.writeSync(fd, buffer, 0, buffer.length, 0); //write new data 
fs.writeSync(fd, data, 0, data.length, buffer.length); //append old data 
// or fs.appendFile(fd, data); 
fs.close(fd); 

bu operasyonlar başlatma sırasında yalnızca bir kez yapılacak getirilmediği takdirde olay döngü bloke edeceğiz gibi, bu yöntemlerin asenkron sürümlerini kullanmak gerektiğini unutmayın. küçük dosyalar ile

+0

Merhaba c.P.u1 cevabınız için teşekkürler, ancak istediğim dosyanın sonuna eklemek için dosyanın sonuna eklenmiyor –

+0

fs.write (fd, buf, 0, buf.length, 0); '+ + –

+0

@DevPiplay ile dosyanın içindeki orijinal metnin üzerine yazacak, üzgünüm, sorunuzu yanlış anladım. Lütfen güncellenmiş cevabı kontrol edin. –

1

bunu şöyle yapabiliriz:

let logPath = path.join(appPath, 'deploy.log'); 
let logRows = fs.readFileSync(logPath).toString().split('\n'); 

logRows.unshift('Your string here'); 
fs.writeFileSync(logPath, logRows.join('\n')); 

o kimse için yararlı olacağını umuyoruz!

İlgili konular