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);
這種方式無疑是很有局限性的,修改時想要保證文件內容不丟失,創建對象時必須填寫全部數據,比較適合文件內容比較小的情況;
