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