我想创建一个简单的日志系统,它使用Node.js将过去行之前的行打印到txt文件中,但我不知道Node.js的文件系统是如何工作的.有人可以解释一下吗?
Leo*_*tny 89
将数据插入文本文件的中间并不是一项简单的任务.如果可能,您应该将其附加到文件的末尾.
追加数据的一些文本文件,最简单的方法是使用内置的fs.appendFile(filename, data[, options], callback)功能从fs模块:
var fs = require('fs')
fs.appendFile('log.txt', 'new data', function (err) {
if (err) {
// append failed
} else {
// done
}
})
Run Code Online (Sandbox Code Playgroud)
但是如果你想多次将数据写入日志文件,那么最好使用fs.createWriteStream(path[, options])函数代替:
var fs = require('fs')
var logger = fs.createWriteStream('log.txt', {
flags: 'a' // 'a' means appending (old data will be preserved)
})
logger.write('some data') // append string to your file
logger.write('more data') // again
logger.write('and more') // again
Run Code Online (Sandbox Code Playgroud)
每次您打电话时.write,Node都会继续将新数据附加到您的文件中,直到您的应用程序关闭,或者直到您手动关闭要调用的流.end:
logger.end() // close string
Run Code Online (Sandbox Code Playgroud)
只需使用fs模块和类似的东西:
fs.appendFile('server.log', 'string to append', function (err) {
if (err) return console.log(err);
console.log('Appended!');
});
Run Code Online (Sandbox Code Playgroud)
步骤1
如果你有一个小文件将所有文件数据读入内存
第2步
将文件数据字符串转换为数组
步骤3
搜索数组以找到要插入文本的位置
步骤4
确定位置后,插入文本
yourArray.splice(index,0,"new added test");
Run Code Online (Sandbox Code Playgroud)
步骤5
将数组转换为字符串
yourArray.join("");
Run Code Online (Sandbox Code Playgroud)
步骤6
像这样写你的文件
fs.createWriteStream(yourArray);
Run Code Online (Sandbox Code Playgroud)
如果您的文件太大,不建议这样做
| 归档时间: |
|
| 查看次数: |
77776 次 |
| 最近记录: |