NodeJs操做文件-寫入、修改、刪除、追加、讀取文件內容、判斷文件是否存在

NodeJs操做file經常使用方法:javascript

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 ?  '目錄/文件不存在': '文件存在,能夠進行讀寫');
});

  

修改文件指定內容:java

編寫這段代碼的背景是我要定時同步數據,須要記錄上次同步數據到那個時間點了,因此文件裏只存了時間;app

//獲取時間
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);

 

上面代碼並不能達到修改指定內容的功能,請看下面:ui

//修改文件內容
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);

 

這種方式無疑是頗有侷限性的,修改時想要保證文件內容不丟失,建立對象時必須填寫所有數據,比較適合文件內容比較小的狀況;code

相關文章
相關標籤/搜索