05Node核心模塊-fs文件系統(tǒng)

fs模塊的常用api接口:

1.讀文件

  • fs.readFileSync(path[, options])(同步讀取文件)

    參數(shù):

    • path <string>|<Buffer>|<URL>|<integer> 文件名或文件描述符。
    • options <string>|<object> 相關(guān)配置參數(shù)
      • encoding 編碼方式
      • flag 文件打開的行為

    返回值:<string>path對(duì)應(yīng)路徑文件的內(nèi)容

const fs = require('fs')
//同步讀取文件
let helloFs = fs.readFileSync('./data/hello.txt',{encoding:"utf-8",flag:"r"})
console.log(helloFs,typeof helloFs)  //string
  • fs.readFile(path[, options], callback)(異步讀取文件)

    參數(shù):

    • path <string>|<Buffer>|<URL>|<integer> 文件名或文件描述符。
    • options <string>|<object> 相關(guān)配置參數(shù)
      • encoding 編碼方式
      • flag 文件打開的行為
    • callback <function>
      • err 錯(cuò)誤信息
      • data <string> 文件內(nèi)容

    返回值:<string> 文件內(nèi)容或錯(cuò)誤信息

fs.readFile(
    './data/hello.txt',
    { encoding: "utf-8", flag: "r" },
    (err, data) => {
        if (!err) {
            console.log(data)
        } else {
            console.log(err)
        }
    }
)
  1. 寫文件
  • fs.writeFileSync(file, data[, options])(同步寫入)

    參數(shù):

    • file <string>|<Buffer>|<URL>|<integer> 文件名或文件描述符。
    • data <string> 要寫入的內(nèi)容
    • options <object>相關(guān)配置參數(shù)
      • encoding 編碼方式
      • flag 文件打開的行為
      • mode <integer> 默認(rèn)值0666、

    返回:<undefined>

fs.writeFileSync(
    './data/hello.txt',
    "\n我是個(gè)大帥哥?。n",
    { encoding: "utf-8", flag: "a" },
)
  • fs.writeFile(file, data[, options], callback)

    參數(shù):

    • file <string>|<Buffer>|<URL>|<integer> 文件名或文件描述符。
    • data <string> 要寫入的內(nèi)容
    • options <object>相關(guān)配置參數(shù)
      • encoding 編碼方式
      • flag 文件打開的行為
      • mode <integer> 默認(rèn)值0666
    • callback <function> err

    返回:<undefined>

fs.writeFile(
    './data/hello.txt',
    "\n我是個(gè)大帥哥異步!!",
    { encoding: "utf-8", flag: "a" },
    (err)=>{
        console.log(err)
    }
)

? promise風(fēng)格的readFile和writeFile

const fs = require("fs")
//讀文件的函數(shù)
readFs = (src)=>{
    return new Promise((resolve,reject)=>{
        fs.readFile(src,{flag:"r",encoding:"utf-8"},(err,data)=>{
            if(err){
                reject(err)              
            }else{
                resolve(data)
            }
        })
    })
}

//寫文件的函數(shù)
writeFs = (src,content) => {
    return new Promise((resolve,reject)=>{
        fs.writeFile(src,content,{flag:"a",encoding:"utf-8"},(err)=>{
            if(!err){
                resolve(err)
            }else{
                reject(err)
            }           
        })
    })
}

module.exports = {readFs,writeFs}
  1. 創(chuàng)建目錄

    • fs.mkdirSync(path[, options])(同步)

      參數(shù):

      • path <string>|<Buffer>|<URL>| 目錄 必需
      • options <object>相關(guān)配置參數(shù)
        • recursive <boolean> 默認(rèn)值: false。
        • mode <string>|<integer> 在 Windows 上不支持。默認(rèn)值: 0o777。

      返回:<underfined>

    fs.mkdirSync('./data/LDdir/')
    
    • fs.mkdir(path[, options], callback)(異步)

      參數(shù):

      • path <string>|<Buffer>|<URL>| 目錄 必需
      • options <object>相關(guān)配置參數(shù)
        • recursive <boolean> 默認(rèn)值: false
        • mode <string>|<integer> 在 Windows 上不支持。默認(rèn)值: 0o777。
      • callback <function> err 必需

      返回:<underfined>

fs.mkdir('./data/LDdir/',(err)=>{
    console.error(err)
})
  1. 讀取目錄

    • fs.readdirSync(path[, options])

      參數(shù):

      • path <string>|<Buffer>|<URL>| 目錄 必需
      • options <object>相關(guān)配置參數(shù)
        • encoding <string> 默認(rèn)值:"utg-8"
        • withFileTypes <boolean> 默認(rèn)值: false

      返回: <array>字符串?dāng)?shù)組

let res = fs.readdirSync('./data',{encoding:"utf-8",withFileTypes:false})
console.log(res)
  • fs.readdir(path[, options], callback)

參數(shù):

  • path <string>|<Buffer>|<URL>| 目錄 必需
  • options <object>相關(guān)配置參數(shù)
    • encoding <string> 默認(rèn)值:"utg-8"
    • withFileTypes <boolean> 默認(rèn)值: false
  • callback <function>
    • err <Error>err
    • files <Array>字符串?dāng)?shù)組
fs.readdir('./data',(err,files) => {
    if(!err){
        console.log(files)
    }else{
        console.log(err)
    }
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容