這篇文章主要介紹Nodejs常用文件fs模塊API有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
fs模塊的文件操作一般支持同步和異步兩種API,異步又包括了回調函數和promsie的形式。同步一般后面帶sync
字樣。
fs.open(path:string,callback:(err,fd)=>void)
用于打開文件,獲取文件描述符(file descriptor),基于拿到的文件描述符做文件操作。fs.close(fd:number,callback:(err)=>void)
用于關閉文件
//打開文件 fs.open(path,(err,fd)=>{ //針對拿到的fd 進行操作 //關閉文件 fs.close(fd, (err) => { if (err) throw err; }); })
一般用于對文件做多種操作時使用。如果你僅僅想讀取文件的內容建議用fs.readFile
讀取文件:fs.readFile(path:string,callback:(err,data)=>void)
fs.readFile(path,(err,data)=>{ //string或者buffer console.log(data) })
讀取目錄:fs.readdir(path:string,callback:(err,files:Array<string>)=>void)
fs.readdir("./dir",(err,fileNames)=>{ console.log(fileNames) })
還有一種方式通過文件描述符來讀?。?/p>
fs.read(fd,buffer,offset,length,position,callback:(err,bytesLen,buffer)=>void)
//分配一塊長度為10的緩存區 const buffer = Buffer.alloc(10); //打開文件 fs.open(path,(err,fd)=>{ //針對拿到的fd 進行操作:將fd對應的文件內容讀取到buffer里 //position為文件的起點 //length為讀取的長度 //offset為緩存區起讀的位置 fs.read(fd,buffer,offset,length,position,(err,bytesLen,buffer)=>{ //buffer為包含讀到數據的原始buffer對象 //bytesLen === length;// true }) //關閉文件 fs.close(fd, (err) => { if (err) throw err; }); })
將數據寫入文件,數據可以是字符串或buffer:fs.writeFile(path,data,callback:(err)=>void)
fs.writeFile('message.txt', data, (err) => { if (err) throw err; });
還有另一種方式,通過文件描述符fd
來寫文件:
fs.open(path,(err,fd)=>{ //針對拿到的fd 進行操作:將buffer內容寫如fd對應的文件里 //position為文件的起點 //length為待寫的長度 //offset為緩存區起寫的位置 fs.write(fd,buffer,offset,length,position,(err,bytesWrittenLen,buffer)=>{ }) //關閉文件 fs.close(fd, (err) => { if (err) throw err; }); })
刪除文件:fs.unlink(path, callback:(err)=>void)
刪除目錄:fs.rmdir(path,callback:(err)=>void)
同時支持刪除目錄和文件:fs.rm(path,callback:(err)=>void)
fs.stat(path,(err,stat)=>{ //stat包含了該目錄或文件的大小、創建時間、更新時間,是目錄還是文件等 //stats.isDirectory() //stats.isFile() })
重命名包括重命名文件和目錄
//文件 fs.rename('oldFile.txt', 'newFile.txt', (err) => { if (err) throw err; console.log('Rename complete!'); }); //目錄 fs.rename('oldFileDir', 'newFileDir', (err) => { if (err) throw err; console.log('Rename complete!'); });
以上是“Nodejs常用文件fs模塊API有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。