浅学node - fs模块(文件操作)(异步篇)

392 阅读4分钟

转载请注明出处,谢谢
同步篇点击这里↓
fs模块(文件操作)(同步篇)

1、什么是fs模块

fs模块为nodejs的核心模块,属于内置模块,无需进行三方安装,直接引用即可
const fs = require('fs')
fs模块提供文件操作的功能,其中包括了 的功能

2、fs模块的功能

常用功能如下

增: mkdir()  writeFile()  appendFile()
删: unlink() rmdir()
改: rename()
查: exists() stat() access()
读: readdir() readFile()

具体用法:

2.1增:mkdir()  writeFile()  appendFile()

mkdir()         创建文件夹
writeFile()     写入文件  无增有写入 (具有覆盖性)
appendFile()    写入文件  无增有写入 写入追加后边


writeFile() 和appendFile()写入的时候都需要保证目录存在 否则就会写入失败

2.1.1 mkdir() 创建文件夹

函数中第一个参数是相对路径 第二个参数是一个回调函数

fs.mkdir("./myDir",()=>{        
    console.log("创建完成");
})

2.1.2 writeFile() 写入文件(具有覆盖性)(有则写入,无则新增文件后写入)

函数中第一个参数是相对路径 第二个参数是写入的内容 第三个参数是一个回调函数
箭头函数中err是错误信息

fs.writeFile("./myDir/text.txt", "一键三连", (err) => {  
    if (!err) {              //判断  当没有错误信息时候 执行if里边的语句
         console.log("写入成功");
     }
})

2.1.3 appendFile() 写入文件  无增有写入 写入追加后边

函数中第一个参数是相对路径 第二个参数是写入的内容 第三个参数是一个回调函数
箭头函数中err是错误信息

fs.appendFile("./myDir/text.txt", "一键三连", (err) => {
   if (!err) {       
       console.log("写入成功");
   }
})

2.2删 unlink() rmdir()

unlink()删除文件
rmdir() 删除文件夹

2.2.1 unlink()删除文件

fs.unlink("./myDir/text.txt", (err) => {  //第一个参数是文件路径,第二个参数是回调函数
    if (!err) {
        console.log("删除成功");
    }
})

2.2.2 rmdir() 删除文件夹

fs.rmdir("./myDir", (err) => {  //第一个参数是文件路径,第二个参数是回调函数
    if (!err) {
        console.log("删除成功");
    }
})

2.3改:rename()

rename() 重命名/移动文件位置

2.3.1 rename() 重命名

第一个参数是原文件路径,第二个参数是更改文件名之后文件路径,第三个参数是回调函数

 fs.rename("./myDir", "./abc", (err) => { 
    if (!err) {
        console.log("文件更名成功");
    }
})

2.3.2 rename() 移动文件位置

第一个参数是原文件路径,第二个参数是移动文件之后路径,第三个参数是回调函数

fs.rename("./abc/demo.js", "./myDir/demo.js", (err) => {
    if (!err) {
        console.log("文件移动成功");
    }
})

2.4查:exists() stat() access()

exists()    判断文件或目录是否存在    **即将废除**
stat()      用于判断文件或目录是否存在,如果不存在返回一个错误对象  存在则返回null
access()    判断文件或目录是否存在 如果不存在返回一个错误对象  存在则返回null

2.4.1 exists() 判断文件或目录是否存在 (即将废除)

第一个参数是文件路径,第二个参数是回调函数
回调函数的参数是一个布尔值  true表示存在   false表示不存在

fs.exists("./abc/te2xt.txt",(falg)=>{
    if (falg) {
        console.log("存在");  
    } else {
        console.log("不存在"); 
    }
})

2.4.2 stat()  判断文件或目录是否存在

fs.stat("./abc/text3.txt", (err) => {
    if (err) {
        console.log("不存在");
    } else {
        console.log("存在");
    }
})

2.4.3 access()  判断文件或目录是否存在

第一个参数是文件路径,第二个参数是回调函数
回调函数返回的是错误对象,没有错误返回null

fs.access("./abc/text3.txt", (err) => {
    if (err) {
        console.log("不存在");
    } else {
        console.log("存在");
    }
})

2.5读: readdir() readFile()

readdir()   读取文件夹中的信息
readFile()  读取文件中的数据信息

2.5.1 readdir() 读取文件夹中的信息

第一个参数是文件路径,第二个参数是回调函数
回调函数中第一个参数是错误对象,第二个对象是读取的数据信息

fs.readdir("./myDir",(err,data)=>{
    if (!err) {
        // data数组中包含子文件名和子文件夹名,不包含二级子文件夹中的信息
        console.log(data);
    }
})

2.5.2 readFile() 读取文件中的数据信息

第一个参数是文件路径,第二个参数是回调函数
回调函数中第一个参数是错误对象,第二个对象是读取的数据信息

fs.readFile("./abc/text.txt",(err,data)=>{
    if (!err) {
        // 读取的信息是一个buffer格式的数据
        // beffer 是内存中的缓存数据格式 16进制 可以调用toString()转成字符串
        console.log(data.toString());
    }
})



转载请注明出处,谢谢