Node.js的文件写入

本文详细介绍了在Node.js环境中如何使用fs模块进行文件的同步和异步写入操作,包括文件的打开、写入和关闭。同时,提到了简单文件写入和流式写入的方法,对于开发者进行文件操作提供了清晰的步骤和示例代码。
摘要由CSDN通过智能技术生成

文件系统

  • 文件系统是Node环境中来操作操作系统中的文件
  • 使用Node来操作文件时需要使用node环境中的js模块,js模块为核心模块,直接引入使用即可

同步文件写入

  • 同步文件的打开。使用fs.openSync(path, flags[, mode])
    • path:要打开文件的路径
    • flags:打开文件要做的操作类型。r-只读,w-可写
    • mode:设置文件的操作权限,一般不传
    • 该方法有一个返回值fd,该返回值为一个文件描述符,用来向写入函数传递
  • 同步文件的写入。使用fs.writeSync(fd, string[, position[, encoding]])
    • fd:文件的描述符,需要传递要写入的文件描述符
    • string:写入文件的内容
    • position:写入内容的起始位置
    • encoding:写入内容的编码,默认为utf-8
  • 同步文件的关闭。使用fs.closeSync(fd)
    • fd:文件的描述符,要关闭的文件描述符
// 导入fs模块
const fs = require('fs')

// 用写模式打开文件,获取文件描述符
const fd = fs.openSync("test.txt", "w")

// 写入内容
fs.writeSync(fd, "这是测试的内容")
// 写入内容,起始位置在第10个字符处
fs.writeSync(fd, "这是测试的内容2222", 50)

// 关闭文件
fs.closeSync(fd)

异步文件写入

  • 异步文件打开。使用fs.open(path, flags[, mode], callback)
    • 异步文件的操作与同步不同,无法直接获得返回值,所有的操作都必须从回调函数中获取
    • 前三个参数与同步文件相同
    • callback为回调函数,该回调函数有两个返回值
      • err:当异步打开文件出错时产生相应的错误提示,而正确时为null
      • fd:文件描述符
  • 异步文件写入。使用fs.write(fd, string[, position[, encoding]], callback)
    • 与异步打开一致,加入了回调函数,其他参数与同步一致
    • 异步参数只有一个返回值err。当写入出错时err参数会有值
  • 异步文件关闭。使用fs.close(fd, callback)
    • 与异步写入一致,回调函数的返回值也一致
// 导入fs模块
const fs = require('fs')

// 异步文件打开
fs.open("test2.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)
          }
        })
      } else {
        console.log(err)
      }
    })
  } else {
    console.log(err)
  }
})

简单文件的写入

  • 使用fs.writeFile(file, data[, options], callback)进行异步文件写入
  • 使用fs.writeFileSync(file, data[, options])进行同步文件写入
    • file:写入的文件路径
    • data:写入的文件内容
    • options:选项,对写入进行一些操作
    • flag是options中的一个属性,对文件进行操作的类型,r-只读,w-可写,a-追加
    • callback:回调函数
// 导入fs模块
const fs = require('fs')

// 异步文件打开
fs.writeFile("test3.txt","添加内容111", {flag: "a"}, function (err) {
  if (!err) {
    console.log("文件写入成功")
  }
})

流式文件写入

  • 流式写入适用于大文件的写入,而同步、异步以及简单文件的写入容易造成内容的溢出,影响性能
  • 创造可写流。fs.createWriteStream(path, [, options])
    • path: 文件路径
    • options:配置的参数
    • 通过可写流可以创建与某个文件之间的管道,之后可以通过可写流来写入文件内容
const fs = require("fs")

const ws = fs.createWriteStream("test4.txt")
ws.write("这是内容1")
ws.write("这是内容2")
ws.write("这是内容3")
ws.write("这是内容4")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值