node_fs模块

node_fs模块

  1. 文件内容读取:fs.readFile();

    const fs =require("fs");
    /*
        文件内容读取:
        参数1:文件路径和名字
        参数2:可选,文件的格式类型
        参数2:所有异步函数都有的回调函数=>
            第1个参数:错误对象
            第2个参数:读取到的数据内容
    */
    fs.readFile(
        "./007.txt",
        "utf8",
        (err,data)=>{
            if (err){
                console.log("文件没读取成功:",err); 
                return;           
            }else{
                console.log("恭喜文件读取成功,内容为:",data);
            }
            
        }
    );
    
  2. 文件内容写入\修改\创建:fs.writeFile()

    const fs = require("fs");
    /*
        给文件写入内容:
        文件不存在:那就创建文件
        文件已存在:那就修改文件(重新写入的内容默认是覆盖原来的内容)
        参数1:写入的文件路径和名字      注:不能创建一个不存在的文件夹,只能创建一个不存在的文件
        参数2:写入的内容
        参数3:options(选项)
            {   encoding:默认utf8,
                mode:默认0o666,
                flag:默认w覆盖                 
                    a    -打开文件用于追加。如果文件不存在,则创建该文件。
                    ax   -与‘a'相似,但如果路径已存在则失败。
                    a+   -打开文件用于读取和追加。如果文件不存在,则创建该文件。
                    ax+  -与'a+'相似,但如果路径已存在则失败。
                    as   -以同步模式打开文件用于追加。如果文件不存在,则创建该文件。
                    as+  -以同步模式打开文件用于读取和追加。如果文件不存在,则创建该文件。
                    r    -打开文件用于读取。如果文件不存在,则出现异常。
                    r+   -打开文件用于读取和写入。如果文件不存在,则出现异常。
                    rs+  -以同步模式打开文件用于读取和写入。指示操作系统绕过本地的文件系统缓存。
                    w    -打开文件用于写入。如果文件不存在则创建文件,如果文件已存在则截断文件。
                    wx   -与'w'相似,但如果路径已存在则失败。
                    w+   -打开文件用于读取和写入。如果文件不存在则创建文件,如果文件已存在则截断文件。
                    wx+  -与'以”相似, 但如果路径已存在则失败。
            }
        参数4:回调函数
    */
    fs.writeFile(
        "./goudan.txt",
        "\n\r我是刚刚写入的内容--",
        {
            encoding:"utf8",
            flag:"a"
        },
        (err)=>{
            if(err){
                console.log("写入出错了",err);
            }else{
                console.log("写入成功");
            };
        },
    );
    
  3. 删除文件:fs.unlink()

    const fs = require("fs");
    /*
        删除文件:只能删除文件不能删除目录
        参数1:文件路径和名字
        参数2:回调函数
    */
    fs.unlink(
        "./sherry.png",
        (err)=>{
            if(err){
                console.log("未找到文件或者目录",err);
            }else{
                console.log("文件已经成功删除");
            }
        },    
    );
    
  4. 重命名/移动 文件或者文件夹:fs.rename()

    const fs =require("fs");
    /*
    *修改文件名:重命名/移动 文件或者文件夹
        参数1:原文件路径和名字
        参数2:新文件路径和名字
        参数3:回调函数:
    */
    //重命名
    fs.rename(
        "./007.md",
        "./007.txt",
        (err)=>{
            if(err) {
                console.log("没找到文件或者目录:",err); //失败提示
                return;
            }else{
                console.log('恭喜修改成功!');    //成功提示
            }
        }
    );
    
    //移动文件:注:移动到的目录必须存在,不然移动失败,不会自动创建文件夹
    fs.rename(
        "./007.txt",
        "./app/007.txt",
        (err)=>{
            if(err) {
                console.log("没找到文件或者目录:",err); //失败提示
                return;
            }else{
                console.log('恭喜修改成功!');    //成功提示 
            }
        }
    );
    
    //移动文件夹:将css文件夹移动到app文件夹里面去
    fs.rename(
        "./css",
        "./app/css",
        (err)=>{
            if(err) {
                console.log("没找到文件或者目录:",err); //失败提示
                return;
            }else{
                console.log('恭喜移动成功!');    //成功提示 
            }
        }
    );
    
  5. 读取目录:fs.readdir()

    const fs = require("fs");
    /*
        读取目录:
        参数1:被读取的路径
        参数2:回调函数:
            失败:err
            成功:data  目录以数组形式展示
    */
    fs.readdir(
        "./",
        (err,data)=>{
            if(err){
                console.log("读取失败:",err);
            }else{
                console.log("文件目录为:",data);
                data.forEach( item=>{console.log(item);});  //可以将data里面的内容遍历
            }
        },
    );
    
  6. 创建目录:fs.mkdir()

    const fs = require("fs");
    /*
        创建目录:
        参数1:文件夹路径
        参数2:回调函数:
    */
    fs.mkdir(
        "./ds/gg",      //注意:创建文件夹只能在已经有的目录下面创建文件夹,若目录不存在,不能创建文件夹
        (err)=>{
            if(err){
                console.log("创建失败:",err);
            }else{
                console.log("创建成功:");            
            }
        },
    );
    
  7. 删除文件夹:fs.rmdir()

    const fs = require("fs");
    /*
        删除文件夹:只能删除空文件夹,不能删除非空文件夹
    */
    fs.rmdir(
        "./css",
        (err)=>{
            if(err){
                console.log("删除失败:",err);
            }else{
                console.log("删除成功:");            
            }
        },
    );
    
  8. 读取当前文件夹信息:fs.stat()

    const fs = require("fs");
    
    fs.stat(
        "./008.txt",
        (err,stats)=>{
            if(err) return;
            // console.log(state);
            console.log(stats.isDirectory()); //是否是文件夹
            console.log(stats.isFile());      //是否是文件
        },
    );
    
  9. 同步API

    /*
        大部分的异步api都有对应的同步api
        一般都是异步api的后面加上Sync  就是同步的api
        同步aip没有回调函数
    */
    
    const fs = require("fs");
    //异步代码:异步代码不阻碍后面代码执行
    fs.readFile(
        "./008.txt",
        "utf8",
        (err,data)=>{
            if(err)return; 
            console.log(data);
        },
    );
    
    //同步代码:同步代码阻碍后面代码执行,异步代码不阻碍后面代码执行,同步代码优先于异步代码执行
    let data;
    try{
        data = fs.readFileSync("./0071.txt","utf8",); //同步代码需要这里完成后,才执行后面的代码  
    }catch (err){
        throw new Error("没找到文件:",err);
    }   //同步代码通过try catch 来进行抛错
    
    console.log(data);
    console.log(1);     //先打印1  在打印data  js执行队列:要先把同步代码执行完成了后才会回头看异步任务是否完成
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值