溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Nodejs常用文件fs模塊API有哪些

發(fā)布時間:2021-08-12 12:33:37 來源:億速云 閱讀:309 作者:小新 欄目:web開發(fā)

這篇文章主要介紹Nodejs常用文件fs模塊API有哪些,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

同步與異步

fs模塊的文件操作一般支持同步和異步兩種API,異步又包括了回調(diào)函數(shù)和promsie的形式。同步一般后面帶sync字樣。

打開、關(guān)閉文件

fs.open(path:string,callback:(err,fd)=>void)用于打開文件,獲取文件描述符(file descriptor),基于拿到的文件描述符做文件操作。fs.close(fd:number,callback:(err)=>void)用于關(guān)閉文件

//打開文件
fs.open(path,(err,fd)=>{
    //針對拿到的fd 進行操作
    
    //關(guān)閉文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})

一般用于對文件做多種操作時使用。如果你僅僅想讀取文件的內(nèi)容建議用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)
})

還有一種方式通過文件描述符來讀取:

fs.read(fd,buffer,offset,length,position,callback:(err,bytesLen,buffer)=>void)

//分配一塊長度為10的緩存區(qū)
const buffer = Buffer.alloc(10);
//打開文件
fs.open(path,(err,fd)=>{
    //針對拿到的fd 進行操作:將fd對應(yīng)的文件內(nèi)容讀取到buffer里
    //position為文件的起點
    //length為讀取的長度
    //offset為緩存區(qū)起讀的位置
    fs.read(fd,buffer,offset,length,position,(err,bytesLen,buffer)=>{
        //buffer為包含讀到數(shù)據(jù)的原始buffer對象
        //bytesLen === length;// true
    })
    //關(guān)閉文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})

寫入文件

將數(shù)據(jù)寫入文件,數(shù)據(jù)可以是字符串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內(nèi)容寫如fd對應(yīng)的文件里
    //position為文件的起點
    //length為待寫的長度
    //offset為緩存區(qū)起寫的位置
    fs.write(fd,buffer,offset,length,position,(err,bytesWrittenLen,buffer)=>{

    })
    //關(guān)閉文件
    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)

查看目錄(文件)的狀態(tài)信息

fs.stat(path,(err,stat)=>{
    //stat包含了該目錄或文件的大小、創(chuàng)建時間、更新時間,是目錄還是文件等
    //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有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI