node的文件读取fs

今天学习了node.js的内置对象fs使用方法,所以积累一下心德。。。。

node的文件读取分为同步读取(readFileSync)和异步读取(readFile)

同步和异步的区别所在:

  同步,当发起一个调用时,在没有获取结果之前,调用不会返回,直到获取结果。事一件 一  件做,做完一件再做下一件。

异步,当发起一个调用时,在没有获取结果之前,调用就返回了,调用者并不会立即得到结果,而是被调用者通知调用者。通过回调函数处理结果。

同步读取:readFileSync

方法:fs.readFileSync(path[,option]) 

例子:

// const fs = require('fs');//

//读取当前文件的内容,设置了编码为utf8//

//readFileSync是同步方法,当node执行到此行代码的时候,整个程序等待文件读取完毕后,再往后执行

 var fileContent = fs.readFileSync(__filename,

         {

              encoding:'utf8'

 })

console.log(fileContent)

运行结果:

const fs = require('fs');

//读取当前文件的内容,设置了编码为utf8 //readFileSync是同步方法,当node执行到此行代码的时候,整个程序等待文件读取完毕后,再往后执行 var fileContent = fs.readFileSync(__filename,{ encoding:'utf8' }) console.log(fileContent)

大家可以看出node的运行结果是以字符串的性质,将本文件的代码运行出来,它运行的顺序是将fileContent的结果得出来,在输出fileContent的结果

异步读取:readFile(path[,options],callback)

方法:fs.readFile(path[, options], callback)

例子:

const fs = require('fs');

const path = require('path');

let indexJSFileName = path.join(__dirname,'index.js');

fs.readFile(indexJSFileName,{ encoding:'utf8'},function(err,data){

    console.log('文件读取完毕,执行回调函数')

      if(err){ console.log('文件读取出现异常'+err)

        }else{

           console.log('文件读取成功'+data)

         }

})

console.log('主线程继续执行......')

这里使用的是读取本文件夹中的其他的文件,使用的是异步读取的方法

运行结果:

主线程继续执行......

/Users/apple/Desktop/node/demo2/index.js

文件读取完毕,执行回调函数 文件读取成功

module.exports = { show:function(){ console.log('show index.js') } }

根据运行结果,我们可以看出node执行本代码的顺序是先输出console.log("主线程继续执行"),然后在执行的是本文件加下的index.js里面的内容,这便是异步执行


说到这里你应该对同步和异步读取文件有一些了解,如果有什么问题,欢迎指出哟

你可能感兴趣的:(node的文件读取fs)