NodeJs操作file常用方法:
var fs = require('fs');
//写入文件
fs.writeFile("test.txt", "hello world! maxinhai is good coder!", function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
//向文件追加内容
fs.appendFile("test.txt", "人间失格", 'utf-8', function(err) {
if(err) {
console.log(err);
return false;
}
console.log('写入成功!!!');
});
//读取文件
fs.readFile("test.txt", function(err, data) {
if(err) {
console.log(err);
return false;
}
console.log(data.toString());
});
//unlink删除文件
fs.unlink('test.txt',function(err) {
if(err){
console.log(err);
return false;
}
console.log('删除文件成功');
});
//判断文件/目录是否存在
fs.access('test.txt',(err)=>{
console.log(err ? '目录/文件不存在': '文件存在,可以进行读写');
});
修改文件指定内容:
编写这段代码的背景是我要定时同步数据,需要记录上次同步数据到那个时间点了,所以文件里只存了时间;
//获取时间
function getDateTime() {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
var dateTime = year+'年'+month+'月'+day+'日 '+hour+':'+minute+':'+second;
return dateTime;
}
//修改文件内容
let dateTime = getDateTime();
let date = `${dateTime}`;
console.log('startTime', date);
//1.先写入时间
fs.writeFile('date.txt', date, (err) => {
if (err) throw err;
console.log('写入时间',dateTime);
});
function changeDateTime() {
//2.再修改时间
dateTime = getDateTime();
date = `${dateTime}`
fs.writeFile('date.txt', date, (err) => {
if (err) throw err;
console.log('圆满解决颜色替换', dateTime);
});
//读取文件
fs.readFile("date.txt", function(err, data) {
if(err) {
console.log(err);
return false;
}
console.log('修改后时间',data.toString());
});
}
//模拟隔一段时间再去写入
setTimeout(changeDateTime, 1500);
上面代码并不能达到修改指定内容的功能,请看下面:
//修改文件内容
let dateTime = getDateTime();
let date = `{date:${dateTime}, msg:hello world}`;
console.log('startTime', date);
//1.先写入时间
fs.writeFile('date.txt', date, (err) => {
if (err) throw err;
console.log('写入时间',dateTime);
});
function changeDateTime() {
//2.再修改时间
dateTime = getDateTime();
date = `{date:${dateTime}, msg:hello javaScript}`
fs.writeFile('date.txt', date, (err) => {
if (err) throw err;
console.log('圆满解决颜色替换', dateTime);
});
//读取文件
fs.readFile("date.txt", function(err, data) {
if(err) {
console.log(err);
return false;
}
console.log('修改后时间',data.toString());
});
}
//模拟隔一段时间再去写入
setTimeout(changeDateTime, 1500);
这种方式无疑是很有局限性的,修改时想要保证文件内容不丢失,创建对象时必须填写全部数据,比较适合文件内容比较小的情况;