<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
var fs = require('fs');
(1)同步:程式在涉及到檔案IO時,必須等到檔案IO操作結束後再執行後續的操作。
(2)非同步:程式在涉及到檔案IO時,不等待檔案IO操作結束,繼續執行後續的操作,當檔案IO操作結束後系統會通知程式處理檔案 IO的結果。
"回撥"即"回頭呼叫";"回撥函數"是指函數定義後並不立即呼叫,而是等到某個事件被觸發時再呼叫。具有非同步特性
A、readFile():用於非同步讀取資料。 - - - - 非阻塞方式讀
fs.readFile(fileName, function (err, buffer) {//非同步讀取檔案 if (err) throw err;//處理檔案的程式碼 process(buffer); });
"filename":檔名(包含路徑)
"function(err,buffer)":回撥函數,'err'存放的是讀檔案失敗的資訊;'buffer'存放檔案的內容
B、readFileSync():用於同步讀取檔案,返回一個字串。- - - -阻塞方式
var text = fs.readFileSync(fileName, 'utf8');
readFileSync(filename,'utf8')//同步讀檔案,函數的返回值是字串(檔案內容)
第二個引數:用來指定字元集,若不指定則函數返回Buffer;若指定則返回字串
//建立input.txt 山海皆可平 新年快樂
//建立read,js //1.匯入fs模組 const fs = require('fs'); //2.非同步讀取 fs.readFile('input.txt',function (err,buf) { if(err){ return console.error(err) } console.log("非同步讀檔案:",buf.toString()) }) console.log('2022-1-2') // 2022-1-2 // 非同步讀檔案: 山海皆可平 // 新年快樂
//1.匯入fs模組 const fs = require('fs'); //3.同步讀取 let str = fs.readFileSync('input.txt','utf8'); console.log("同步讀檔案:",str); console.log('2022-1-2') // 同步讀檔案: 山海皆可平 // 新年快樂 // 2022-1-2
fs.open(path, flags[, mode], callback)
open(path, flags[, mode], callback)
'path'
:檔名(包含路徑)
'flags'
:開啟檔案的方式
'mode'
:設定檔案模式,但前提是已建立該檔案。它預設為0666,讀取和寫入
'callback'
:這是回撥函數,有兩個引數(err, fd)
--'r'
:以唯讀方式開啟檔案,若檔案不存在則報異常
--'w'
:為寫開啟檔案,若檔案則建立檔案
--'a'
:向檔案中追加內容,若檔案則建立檔案
--'rs'
:同步方式開啟檔案
//1.匯入fs模組 const fs = require('fs'); fs.open('input.txt','r+',function (err,fd) { if(err){ return console.error(err) } console.log("fd:",fd); console.log('開啟檔案成功!'); }) // fd: 3 // 開啟檔案成功!
是一個物件,包含檔案或目錄(資料夾)的具體資訊。通過該物件可以判斷當前處理的是物件還是目錄
fs.stat(path, callback)
'path'
: 檔名,包括路徑字串。
'callback'
:回撥函數得到兩個引數(err, stats)
//1.匯入fs模組 const fs = require('fs'); fs.stat('text',function (err,stats) { if (err){ return console.error(err) } console.log("檔案狀態:",stats); //檢查 console.log("isFile? ----",stats.isFile()) //判斷物件是否是檔案 console.log("isDirectory?----",stats.isDirectory())//判斷物件是否是目錄 }) // 檔案狀態: Stats { // dev: 3959906401, // mode: 16822, // nlink: 1, // uid: 0, // gid: 0, // rdev: 0, // blksize: 4096, // ino: 27584547718321690, // size: 0, // blocks: 0, // atimeMs: 1645523918307.2014, // mtimeMs: 1645523918307.2014, // ctimeMs: 1645523918307.2014, // birthtimeMs: 1645523918307.2014, // atime: 2022-02-22T09:58:38.307Z, // mtime: 2022-02-22T09:58:38.307Z, // ctime: 2022-02-22T09:58:38.307Z, // birthtime: 2022-02-22T09:58:38.307Z // } // isFile? ---- false // isDirectory?---- true
fs.writeFile(filename, data[, options], callback)
A、writeFile --- 非同步寫入檔案
'filename'
: 檔名,包括路徑字串
'data'
:字串或緩衝區將被寫入到檔案中
'options'
: 一個物件,用於指定編碼格式。預設編碼是UTF8。
'callback'
: 回撥函數獲取一個引數err,用於在發生任何寫入錯誤時返回錯誤。
const fs = require('fs'); //1.向input.txt中寫入內容 fs.writeFile('input.txt','雲與海',function (err) { if(err){ return console.error(err) } console.log('寫入檔案成功!'); })
B、writeFileSync(fileName, data, 'utf8'); //同步寫
fs.writeFileSync(fileName, str, 'utf8');
fs.read(fd, buffer, offset, length, position, callback)
'fd'
:是檔案的描述符,由open函數返回
'buffer'
:緩衝區。存放從二進位制檔案讀取的內容
'offset'
:偏移量。寫入緩衝區的位置
'length'
:讀取的位元組數
'position'
:表示從檔案的某個位置讀。預設從當前位置開始
'callback'
:回撥函數
const fs = require('fs'); //讀取二進位制檔案 var buf = new Buffer(1024); fs.open('input.txt','r+',function (err,fd) { if(err){ return console.error(err) } console.log('開啟檔案成功!') fs.read(fd,buf,0,buf.length,0,function (err,bytes) { if (err){ return console.error(err); } if(bytes > 0){ let str = buf.slice(0,bytes).toString(); console.log("讀取的內容是:",str); } }) console.log('----End----'); }) // 開啟檔案成功! // ----End---- // 讀取的內容是: 離離原上草,一歲一枯榮
close(fd, callback)
const fs = require('fs'); //讀取二進位制檔案 var buf = new Buffer(1024); fs.open('input.txt','r+',function (err,fd) { if(err){ return console.error(err) } console.log('開啟檔案成功!') fs.read(fd,buf,0,buf.length,0,function (err,bytes) { if (err){ return console.error(err); } if(bytes > 0){ let str = buf.slice(0,bytes).toString(); console.log("讀取的內容是:",str); } }) fs.close(fd,function (err) { if (err){ return console.error(err) } console.log('檔案關閉成功!') }) console.log('----End----'); }) // 開啟檔案成功! // ----End---- // 讀取的內容是: 離離原上草,一歲一枯榮 // 檔案關閉成功!
mkdir(path[, mode], callback)
'path'
:要建立的包括路徑的目錄名
'mode'
:目錄的許可權,預設是可讀可寫
callback'
:回撥函數
const fs = require('fs'); fs.mkdir('./yunxi',function (err) { if (err){ return console.error(err) } console.log('建立目錄成功!') })
rmdir(path, callback)
const fs = require('fs'); fs.rmdir('./text',function (err) { if (err){ return console.error(err) } console.log('刪除成功!') })
readdir(path, callback)
'path'
:目錄名
'callback'
:回撥函數,有兩個引數(err,files),'files'是列表,當中放的是當前目錄下的檔案或資料夾名稱
onst fs = require('fs'); fs.readdir('./yunxi',function (err,files) { if (err){ return console.error(err) } files.forEach(function (file) { console.log(file) }) }) // demo.css // exam.ts // zhou
copyFile(原始檔,目標檔案,回撥函數)
const fs = require('fs'); fs.copyFile('./input.txt','./target.txt',function (err) { if (err){ return console.error(err) } console.log('檔案拷貝成功!') }) //target檔案中拷貝了input檔案裡的內容
appendFile(filename,content,callback)
'content'
:追加的內容
const fs = require('fs'); let content = "n野火燒不盡,n春風吹又生"; fs.appendFile('./input.txt',content,function (err){ if (err){ return console.error(err) } console.log('追加內容成功!'); }) //input檔案中的內容是:離離原上草,一歲一枯榮。野火燒不盡,春風吹又生。
unlink(path, callback)
'path'
:帶路徑的檔名
allback'
:回撥函數,沒有引數
const fs = require('fs'); fs.unlink('./target.txt',function (err) { if (err){ return console.error(err) } console.log('刪除檔案成功!') })
rename(oldPath, newPath, callback)
'oldPath'
:原檔名
'newPath'
:新檔名
'callback'
:回撥函數
const fs = require('fs'); fs.rename('./input.txt','./yunxi.txt',function (err){ if (err){ return console.error(err) } console.log('重新命名成功!') }) //將input檔案重新命名為yunxi
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45