fs 文件读取和写入

  • 在 Node 中,与文件系统的交互是非常重要的,服务器的本质就将本地的文件发送给远程的客户端。
  • Node 通过 fs 模块来和文件系统进行交互。
  • 该模块提供了一些标准文件访问 API 来打开、 读取、写入文件,以及与其交互。
  • 要使用 fs 模块,首先需要对其进行加载。

const fs = require(“fs”); // 加载fs文件系统模块

同步和异步调用

  • fs 模块中所有的操作都有两种形式可供选择同步和异步。
  • 同步文件系统会阻塞程序的执行,也就是除非操作完毕,否则不会向下执行代码。
  • 异步文件系统不会阻塞程序的执行,而是在操作完成时,通过回调函数将结果返回。

打开和关闭文件

  • 打开文件
fs.open(path, flags[, mode], callback) 
fs.openSync(path, flags[, mode]) 
  • 关闭文件
fs.close(fd, callback) 
fs.closeSync(fd)

读取文件

同步文件读取

fs.readSync(fd, buffer, offset, length, position)

  • fd:文件描述符
  • buffer:读取文件的缓冲区
  • offset:buffer 的开始写入的位置
  • length:要读取的字节数
  • position:开始读取文件的位置

异步文件读取

fs.read(fd, buffer, offset, length, position, callback)

  • callback:回调函数,参数 err , bytesRead , buffer

写入文件

同步文件写入

fs.openSync(path,flags[,mode])

  • path:要打开的文件路径
  • flags:打开文件要做的操作的类型
  • mode:设置文件的操作权限,一般不传
  • 返回值:该方法会返回一个文件的描述符作为结果,我们可以通过该描述符来对文件进行各种操作

fs.writeSync(fd,string[,position[,encoding]])

  • fd:文件的描述符,需要传递要写入的文件的描述符
  • string:要写入的内容
  • position:写入的起始位置
  • encoding:写入的编码,默认为utf-8,一般也不传

fs.closeSync(fd)

  • fd:要关闭的文件的描述符
// 同步文件写入
var fs = require('fs');
var fd = fs.openSync('hello.txt','w');
// r 只读
// w 只写
fs.writeSync(fd,'Hello JavaScript');
fs.closeSync(fd);

要完成同步写入文件,先需要通过 openSync() 打开文件来获取一个文件描述符,然后在通过 writeSync() 写入文件。

异步文件写入

fs.open(path,flags[,mode],callback)

  • 用来打开一个文件
  • 异步调用的方法,结果都是通过回调函数返回的
  • 回调函数需要两个参数:err 错误对象,如果没有错误,则为null,fd 文件的描述符

fs.write(fd,string[,position[,encoding]],callback)

  • 用来异步写入一个文件

fs.close(fd,callback)

  • 用来关闭文件
// 异步文件写入
var fs = require('fs');
// 打开文件
fs.open('hello2.txt','w',function (err,fd) {
    // 判断是否出错
    if (!err){
       // 如何没有出错,则对文件执行写入操作
        fs.write(fd,'这是异步写入的内容',function (err) {
            if (!err){
                console.log('写入成功~~~');
            }
              fs.close(fd,function (err) {
                  if (!err){
                      console.log('文件已关闭~~~')
                  }
              });
        });
    }else{
        console.log(err);
    }
})

要使用异步写入文件,先需要通过 open() 打开文件,然后在回调函数中通过 write() 写入。

猜你喜欢

转载自blog.csdn.net/lipeiwen1998/article/details/107872571
fs