首页 > 编程语言 >Nodejs 的 fs 模块

Nodejs 的 fs 模块

时间:2024-08-20 09:38:27浏览次数:6  
标签:文件 fs 读取 异步 Nodejs callback 模块 path

文件读写

fs 模块(文件系统模块)提供了一个用于读写文件的API。它是 Node.js 核心模块之一,允许你以异步或同步的方式对文件进行操作。

读取

异步读取文件,当文件读取完成时,调用回调函数。

fs.readFile(path[, options], callback)

同步读取文件,返回文件内容

fs.readFileSync(path[, options])

示例代码

const fs = require('fs');

fs.readFile('fs.txt', 'utf8', (err, data) => {
   // 若读取失败,则 data 为 undefined
   if (err) throw err;
   // 若读取成功,则 err 为 null
   console.log(data);
})
console.log('这是个异步读取文件的操作操作')

console.log(fs.readFileSync('fs.txt', 'utf8'));
// 异步读取使用回调函数处理结果数据, 同步读取,函数本身返回结果数据

 

写入

异步写入文件,当文件写入完成时,调用回调函数。

fs.writeFile(file, data, [encoding], callback)

同步写入文件

fs.writeFileSync(file, data, [encoding])

示例代码

{
   const writeData = 'fs 模块(文件系统模块)提供了一个用于读写文件的API。它是 Node.js 核心模块之一,允许你以异步或同步的方式对文件进行操作。'
   fs.writeFile('fs.txt', writeData, 'utf-8', (err) => {
       if (err) {
           // 若读取成功,则 err 为 null
           console.error(err);
      } else {
           console.log('写入成功啦!')
      }
  })

   try{
       console.log(fs.writeFileSync('fs.txt', fs.readFileSync('fs.txt', 'utf8') + '同步写入', 'utf8'));
  }catch (e){
       console.error(e);
  }
}

使用 fs.writeFileSync 方法同步写入文件时,如果操作成功,该方法不会返回任何值,如果写入过程中发生错误,它会抛出一个异常,因此我们通过try...catch 语句来处理 fs.writeFileSync 可能抛出的异常

追加文件

(fs.appendFilefs.appendFileSync)

  • fs.appendFile(file, data, [encoding], callback):异步追加数据到文件末尾。

  • fs.appendFileSync(file, data, [encoding]):同步追加数据到文件末尾。

删除文件

(fs.unlinkfs.unlinkSync)

  • fs.unlink(path, callback):异步删除文件。

  • fs.unlinkSync(path):同步删除文件。

重命名文件

(fs.renamefs.renameSync)

  • fs.rename(oldPath, newPath, callback):异步重命名文件。

  • fs.renameSync(oldPath, newPath):同步重命名文件。

检查文件状态

(fs.statfs.statSync)

  • fs.stat(path, callback):异步获取文件状态(如大小、创建时间等)。

  • fs.statSync(path):同步获取文件状态。

创建和读取目录

(fs.mkdir, fs.readdir, fs.rmdir)

  • fs.mkdir(path[, options], callback):异步创建目录。

  • fs.readdir(path, callback):异步读取目录内容。

  • fs.rmdir(path, callback):异步删除空目录。

监控文件变化

(fs.watch)

  • fs.watch(filename[, options], listener):监控文件的变化,当文件被修改时触发监听器。

  •  

标签:文件,fs,读取,异步,Nodejs,callback,模块,path
From: https://www.cnblogs.com/xxaxf/p/18368775

相关文章

  • 盲盒电商系统功能模块分析
    盲盒电商系统是一种创新的电子商务模式,通过结合盲盒的随机性和购物体验,为消费者带来了新颖的购物方式。以下是对盲盒电商系统功能模块的分析:会员体系构建:盲盒电商平台通过会员注册和购买盲盒来构建用户基础,新会员可以通过购买任意盲盒成为会员,并获取入门奖励,有效降低参与门槛......
  • 深度学习加速秘籍:PyTorch torch.backends.cudnn 模块全解析
    标题:深度学习加速秘籍:PyTorchtorch.backends.cudnn模块全解析在深度学习领域,计算效率和模型性能是永恒的追求。PyTorch作为当前流行的深度学习框架之一,提供了一个强大的接口torch.backends.cudnn,用于控制CUDA深度神经网络库(cuDNN)的行为。本文将深入探讨torch.backends.cu......
  • ansible block模块
    目录示例:使用block、rescue和always解释:示例输出:实际应用场景:Ansible中的block功能允许你将多个任务组合在一起,作为一个整体来处理。block提供了一些额外的功能,比如rescue和always,这些可以用来处理错误和执行清理任务。以下是一个简单的block功能的示例:示例:使用blo......
  • NFS服务部署
    一、基础概念NFS是一种网络文件系统,实现数据一致性,文件共享NFS将硬盘进行共享,共享的目录;两台服务器的前提下不同用户如何实现上传访问到静态图片/视频都能看到相同的数据则使用NFS其实现在很多企业都会有一个CDN分布式文件缓存,这个缓存可以实现将静态图片/视频上传到CDN分布式......
  • re模块详解
    正则表达式(RegularExpression,简称regex或regexp)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”)。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在编程和数据处理中,正则表达式极其强大,可以用来搜索、编辑或操作文本和......
  • ctfshow-web入门-sql注入(web224-web230)文件类型注入、routines存储过程与函数状态、ha
    目录1、web2242、web2253、web2264、web2275、web2286、web2297、web2301、web224登录页面测了下没发现注入点存在robots.txt访问/pwdreset.php  ,是管理员密码重置的页面直接重置密码,这里以123456为例使用admin/123456登录 来到一个文件生成界......
  • ansible相关模块
    copy模块(重点)copy模块⽤于对⽂件的远程拷⻉操作(如把本地的⽂件拷⻉到远程的机器上)https://docs.ansible.com/ansible/latest/modules/copy_module.html#copy-module在master上准备⼀个⽂件,拷⻉此⽂件到group1的所有机器上使⽤content参数直接往远程⽂件⾥写内容(会覆......
  • 推出ExaMAX®电源模块连接器:EPTS-2-P-D-VT-02、EPTS-2-P-D-VT-03、EPTS-2-P-D-VT-04、
    系列概述ExaMAX®电源模块连接器可用作独立电源解决方案,或与ExaMAX®连接器一起用于微型背板和传统背板应用。特征每个端子电流高达17.3A独立电源解决方案,也可与ExaMAX®背板连接器一起使用每个电源模块总计4个端子直角针脚、垂直或直角插座提供不同端子配置EPTS系列:ExaMAX®......
  • SYN43752方案WIFI6模块VS2275S/P
    首先来了解SYN43752,它是www.synaptics.com旗下的一款WIFI6方案,其中WiFi支持PCIE或者SDIO接口2T2R双通道通信,最大速率高达1200Mbps;蓝牙支持UART/PCM接口,符合BT5.4标准(向下兼容)。目前Synaptics系列芯片方案主要有:WIFI6E:SYN43756E(2T2RBT5.4)模块AP6276S/P;SYN43711(1T1RBT5.4......
  • 如何利用sockserver模块编程实现客户端并发
    前面用sock模块写的服务端和客户端,存在一个大问题,就是当运行多个客户端的时候,必须等一个客户端运行结束,另一个客户端才能实现与服务端的交流,这显然不符合现实中的需求。有没有什么办法解决这个问题呢?有人说没有,屁话。当然有,这就需要用到一个sockserver的模块,用定义类继承类的方式......