nodejs fs模块

是什么:nodejs提供的操作文件的模块

fs.readFile()

fs.writeFile()

js中使用 fs模块操作文件,先导入fs

const fs=require('fs')

fs.readFile() 读取指定文件的内容

语法格式

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

  • path:必选参数,字符串,表示文件路径
  • options:配置选项,可选参数,若是字符串则指定编码格式,表示以什么编码格式读取文件
    • encoding:编码格式
    • flag:打开方式
  • callback:必选参数,通过回调函数拿到读取成功或失败的结果
    • err:错误信息
    • data:读取成功的数据,如果未指定编码格式则返回一个 Buffer

例子

以utf-8格式读取文件,并打印err和dataStr

const fs=require("fs");
fs.readFile('./fs.html','utf8',function(err,data){
    console.log(err);//null 读取失败的结果
    console.log(data);//hmtl文件内容   读取成功的结果
})

fs.writeFile() 向指定文件中写入内容

语法格式

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

参数:

file: 必选,字符串 表示 文件的存放路径
data:必选,表示要写入内容
options:可选参数,以什么格式写入内容,默认为utf8
callback:必选,文件写入完成后的回调函数 ,callback中参数 err 写入失败的错误信息

const fs=require("fs");
fs.writeFile("./files/write.txt","007",'utf8',function(err){
    console.log(err);//null
})

写入文件会自动创建,如果文件之前存在,会覆盖之前内容

给文件追加写入内容
const fs=require("fs");
fs.appendFile("./files/01.txt", "\r\n这是在01.txt文件内追加的内容", (err) => {
    if (err) {
      console.log("追加失败!");
    } else {
      console.log("追加成功!");
    }
  });
复制文件

readFile 回调函数中 writeFile

const fs=require("fs");
fs.readFile('./files/a.txt','utf8',function(err,data){
    if(err){
        console.log("读取失败:"+err);
    } 
    else {
        console.log(data);
    }
    fs.writeFile("./files/04.txt",data,'utf8',function(err){
        if(!err) {
            console.log("写入成功");
        }
    })
})

路径动态拼接问题 __dirname

  • 在使用 fs 模块操作文件时,如果提供的操作路径是以 ./../ 开头的相对路径时,容易出现路径动态拼接错误的问题
  • 原因:代码在运行的时候,会以执行 node 命令时所处的目录,动态拼接出被操作文件的完整路径
  • 解决方案:在使用 fs 模块操作文件时,直接提供完整的路径,从而防止路径动态拼接的问题
  • __dirname 获取文件所处的绝对路径,不包含文件
// __dirname 获取文件所处的绝对路径
//  ../fs模块 是相对路径
console.log(__dirname);//D:\StudyAndhi\nodejs\fs模块   获取当前文件的绝对路径

__dirname 好处,可在当前路径下创建新的文件

参考:

https://brucecai55520.gitee.io/bruceblog/notes/nodejs/node.html#初识-nodejs

相关推荐

  1. 驱动模块--内核模块

    2023-12-09 02:28:03       63 阅读
  2. 模块一:登录模块

    2023-12-09 02:28:03       29 阅读
  3. DSP28335模块配置模板系列——EQEP模块配置模板

    2023-12-09 02:28:03       38 阅读
  4. random模块

    2023-12-09 02:28:03       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 02:28:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 02:28:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 02:28:03       82 阅读
  4. Python语言-面向对象

    2023-12-09 02:28:03       91 阅读

热门阅读

  1. C/C++ 实现枚举网上邻居信息

    2023-12-09 02:28:03       52 阅读
  2. unix dgram通信

    2023-12-09 02:28:03       52 阅读
  3. 3-Mybatis

    3-Mybatis

    2023-12-09 02:28:03      60 阅读
  4. Linux C++ 贪吃蛇游戏 -- 方向键控制蛇移动

    2023-12-09 02:28:03       57 阅读
  5. SkyPile-150B 数据下载地址

    2023-12-09 02:28:03       54 阅读
  6. Spring中拦截WebSecurityConfigurerAdapter和Aop拦截区分

    2023-12-09 02:28:03       60 阅读
  7. 计算三位数每位上数字的和

    2023-12-09 02:28:03       57 阅读
  8. 理想中的PC端剪切板工具,应该有哪些功能?

    2023-12-09 02:28:03       67 阅读