2013-07-11 28 views

Trả lời

10

mở tập tin trong chế độ append sử dụng a+ cờ

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

Hoặc sử dụng một vị trí write. Để có thể nối thêm vào cuối tập tin, sử dụng fs.appendFile:

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

Viết thư cho khởi đầu của một tập tin:

fs.write(fd, buf, 0, buf.length, 0); 

EDIT:

Tôi đoán không có một gọi phương thức duy nhất cho điều đó. Nhưng bạn có thể sao chép nội dung của tệp, ghi dữ liệu mới và nối dữ liệu được sao chép.

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); 

Xin lưu ý rằng bạn phải sử dụng các phiên bản không đồng bộ của các phương pháp này nếu các hoạt động này không được thực hiện chỉ một lần trong quá trình khởi, vì chúng sẽ chặn vòng lặp sự kiện.

+0

hi c.P.u1 cảm ơn câu trả lời của bạn nhưng những gì tôi muốn chèn vào đầu tệp không thêm vào cuối tệp –

+0

fs.write (fd, buf, 0, buf.length, 0); sẽ ghi đè văn bản gốc bên trong tệp ngay cả với 'a +' –

+0

@DevPiplay, xin lỗi, tôi đã hiểu nhầm câu hỏi của bạn. Vui lòng kiểm tra câu trả lời được cập nhật. –

1

Với các file nhỏ, bạn có thể làm điều đó như thế này:

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')); 

Hy vọng nó sẽ có ích cho một ai đó!

Các vấn đề liên quan