导入文件模块

无论是同步还是异步读、写文件都必须要导入文件模块。

  1. let fs = require('fs');

异步读文件

异步读取文件数据方法:

  1. fs.readFile(path[, options], callback)
  • path:文件名
  • options:
  • encoding:编码格式,默认为null
  • flag: 文件系统标志 默认为‘r’,表示打开文件用于读取,如果文件不存在,则发生异常。
  • callback(err,data) data表示读取到的文件数据
  1. let fs = require('fs');
  2. fs.readFile('demo.txt','utf-8',(err,data)=>{
  3. if(!err){
  4. console.log(data);
  5. }else{
  6. console.log(err);
  7. }
  8. });

同步读文件

同步读取文件数据方法:

  1. fs.readFileSync(path[, options])
  • path:文件名
  • options:
  • encoding:编码格式,默认为null
  • flag: 文件系统标志 默认为‘r’
  • 返回值 String
  1. let data = fs.readFileSync('demo.txt','utf-8');

如果同步读取文件发生错误时,需要使用try…catch捕获错误。

  1. try{
  2. let data = fs.readFileSync('demo.txt','utf-8');
  3. }catch(err){
  4. console.log(err);
  5. }

异步写文件

异步写文件数据方法:

  1. fs.writeFile(file, data[, options], callback)
  • file 文件名
  • data 写入文件的数据
  • 设置编码,和写入方式 ,默认写入方式‘w’,表示写入文件,如果文件不存在,就创建文件,如果文件存在则会覆盖文件中原有的数据。
  • callback err捕获写入文件时的异常信息
  1. let fs = require('fs');
  2. let data = 'hello world';
  3. fs.writeFile('demo2.txt',data,err=>{
  4. if(!err){
  5. console.log('写入成功');
  6. }else{
  7. console.log(err);
  8. }
  9. });

同步写入文件

同步写文件数据方法:

  1. fs.writeFileSync('demo2.txt',data);

由于Node环境执行的JavaScript代码是服务器端代码,所以,绝大部分需要在服务器运行期反复执行业务逻辑的代码,必须使用异步代码,否则,同步代码在执行时期,服务器将停止响应,因为JavaScript只有一个执行线程。 服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行。