zoukankan      html  css  js  c++  java
  • node.js的fs核心模块读写文件操作 -----由浅入深

    node.js 里fs模块

    常用的功能

    实现文件的读写 目录的操作

    - 同步和异步共存 ,有异步不用同步


    - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFile方法
    - 文件大分流读取,stream

    - 引入fs模块

    - let fs=require('fs')

    同步读取文件

    -fs.readFileSync('路径',utf8);

    let result=fs.readFileSync('./1.txt','utf8');

    异步读取文件,用参数err捕获错误

    - fs.readFile('路径','utf8',function(){})

    fs.readFile('./name.txt','utf8',function(err,data){
    if(err){
    console.log(err)
    }else{
    console.log(data)
    }
    })

    同步写入文件

    - fs.writeFileSync("路径",写入的数据)

    fs.writeFileSync("./1.txt",JSON.stringify({name:1}))

    异步写入文件

    - fs.writeFile('路径',写入的数据,callback)

    fs.writeFile('./1.txt','aaaaa',function (err) {
    if(err){
    console.log(err);
    }
    })

    读写文件写一个拷贝实例

    let fs=require("fs");
    //同步拷贝
    function copySync(source,target){
    //同步读取
    let result=fs.readFileSync(source,'utf8');
    //同步写入
    fs.writeFileSync(target,result);
    }
    copySync("./age.txt",'./1.txt');




    //异步拷贝


    function copy(sourse,target,callback){
    //异步读取
    fs.readFile(sourse,'utf8',function(err,data){ if(err){ return callback(err) }else{ //异步写入 fs.writeFile(target,data,callback) } }); }; copy('./name.txt','./ss.txt',function(err){ if(err) return console.log(err); console.log('拷贝成功') })

    判断文件存不存在

    - fs.existsSync('文件的路径')

    stat方法

    fs.stat('文件路径',function (err,stat) {

    stat.isDirectory 看是不是文件夹
    stat.isFile 看是不是文件

    })

    删除文件夹

    - fs.rmdir('文件夹路径',function(){})

    删除文件

    - fs.unlink('文件路径',function(){})

    //判断文件存不存在

    if(fs.existsSync('./b')){
    fs.stat('./b',function (err,stat) {
    //stat中的time是用来做服务器缓存
    //stat.isDirectory看是不是文件夹 stat.isFile看是不是文件
    if(stat.isDirectory()){
    //删除文件夹
    fs.rmdir('./b',function(){})
    }else{
    //删除文件
    fs.unlink('./b',function(){});
    }
    })
    }

    利用递归写一个文件夹依次创建

     

    function md(url) {
        let paths=url.split('/'); //将a/b/c拆分成数组['a','b','c']
        let index=0;
        function make(path){
            if(index===paths.length+1){ // 如果到终点,停止递归
                return false;
            }
            if(!fs.existsSync(path)){ //不存在
                //创建文件夹
                fs.mkdir(path,function () {
                    make(paths.slice(0,++index).join('/'))
                })
            }else{ //存在
                make(paths.slice(0,++index).join('/'))
            }
        }
        make(paths[index++]) //先取出第一个
    }
    md('a/b/c/d');
  • 相关阅读:
    base64编码的字符串与图片相互转换
    超酷3D照片展示效果
    table内容保存到Excel中
    项目管理--PMBOK 读书笔记(3)【项目经理的角色 】
    项目管理--PMBOK 读书笔记(2)【项目运行环境】
    项目管理--PMBOK 读书笔记(1)【引论】
    C# ASP.NET递归循环生成嵌套json结构树
    将XML转换为JSON并强制数组
    Yapi Docker 部署
    Spring Cloud Feign+Hystrix自定义异常处理
  • 原文地址:https://www.cnblogs.com/null11/p/7499091.html
Copyright © 2011-2022 走看看