zoukankan      html  css  js  c++  java
  • NodeJs FS 文件系统模块

    1. fs.stat 检测是文件还是目录

     

    fs.stat('html',function(err,stats){
     if(err){
       console.log(err);
    
       return false;
     }
    
     console.log('文件:'+stats.isFile());
     console.log('目录:'+stats.isDirectory());
    
    })

     

    2. fs.mkdir 创建目录

     

      //接收参数:
      //path            将创建的目录路径
      //mode          目录权限(读写权限),默认0777
      //callback      回调,传递异常参数err
    
    
    fs.mkdir('css',function(err){
     if(err){
      console.log(err);
    
      return false;
     }
    console.log('创建目录成功');
    
    })

     

    3. fs.writeFile 创建写入文件

     

    //filename      (String)            文件名称
    //data        (String | Buffer)    将要写入的内容,可以使字符串 或 buffer数据。
    //options        (Object)           option数组对象,包含:
     //· encoding   (string)            可选值,默认 ‘utf8′,当data使buffer时,该值应该为 ignored。
     //· mode         (Number)        文件读写权限,默认值 438
     //· flag            (String)            默认值 ‘w'
    //callback {Function}  回调,传递一个异常参数err。
    
    
    fs.writeFile('t.txt','你好nodejs 覆盖','utf8',function(err){
    
      if(err){
       console.log(err);
    
       return false;
      }
     console.log('写入成功');
    })

     

    4. fs.appendFile 追加文件

     

    fs.appendFile('t1.txt','这是写入的内容',function(err){
    
      if(err){
       console.log(err);
    
       return false;
      }
     console.log('写入成功');
    })

     

    5.fs.readFile 读取文件

    fs.readFile('t1.txt',function(err,data){
      if(err){
       console.log(err);
    
       return false;
      }
      //console.log(data);
    
      console.log(data.toString());
    
    })
    

     

    6.fs.readdir 读取目录

    fs.readdir('html',function(err,data){
    
       if(err){
        console.log(err);
    
        return false;
      }
      console.log(data);
    
    })

     

     

    7.fs.rename 重命名

    fs.rename('html/index.html','html/news.html',function(err){
    
       if(err){
        console.log(err);
    
        return false;
      }
      console.log('修改名字成功');
    })
    
    
    fs.rename('html/css/basic.css','html/style.css',function(err){
    
        if(err){
         console.log(err);
    
         return false;
       }
       console.log('剪切成功');
    })

     

    8. fs.rmdir 删除目录

    fs.rmdir('t',function(err){
         if(err){
          console.log(err);
    
          return false;
        }
       console.log('删除目录成功');
    })
    
    // ENOENT: no such file or directory, rmdir      rmdir 这个方法只能删除目录
    fs.rmdir('index.txt',function(err){
         if(err){
          console.log(err);
    
          return false;
        }
       console.log('删除目录成功');
    })

     

    9. fs.unlink 删除文件

    fs.unlink('index.txt',function(err){
    
           if(err){
              console.log(err);
              return false;
         }
        console.log('删除文件成功');
    })

     

    10. fs.createReadStream 从文件流中读取数据

    const fs = require('fs')
    
    //流的方式读取文件
    
    var readStream=fs.createReadStream('input.txt');
    
    var str='';/*保存数据*/
    var count=0;  /*次数*/
    readStream.on('data',function(chunk){
        str+=chunk;
        count++;
    
    })
    
    //读取完成
    readStream.on('end',function(chunk){
        console.log(count);
        console.log(str);
    
    })
    
    
    //读取失败
    readStream.on('error',function(err){
        console.log(err);
    
    })

     

    11. fs.createWriteStream 写入文件

    var fs = require("fs");
    var data = '我是从数据库获取的数据,我要保存起来11
    ';
    
    // 创建一个可以写入的流,写入到文件 output.txt 中
    var writerStream = fs.createWriteStream('output.txt');
    
    for(var i=0;i<100;i++){
    
    
        writerStream.write(data,'utf8');
    
    }
    
    //标记写入完成
    writerStream.end();
    
    
    writerStream.on('finish',function(){
    
        console.log('写入完成');
    })
    
    //失败
    writerStream.on('error',function(){
    
        console.log('写入失败');
    })

     

    12. 管道流

    var fs = require("fs");
    
    
    // 创建一个可读流
    var readerStream = fs.createReadStream('input.txt');
    
    // 创建一个可写流
    var writerStream = fs.createWriteStream('output.txt');
    
    // 管道读写操作
    // 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
    readerStream.pipe(writerStream);
    
    console.log("程序执行完毕");

    demo:

    //1.判断服务器上面有没有upload目录。没有创建这个目录。   (图片上传)
    
    //要用fs目录必须得引入fs
    
    var fs=require('fs');
    //
    //fs.stat('upload',function(err,stats){
    //
    //        if(err){  /*没有这个目录*/
    //            fs.mkdir('upload',function(error){
    //                if(error){
    //
    //                    console.log(error);
    //                    return false;
    //                }
    //                console.log('创建成功');
    //            })
    //        }else{
    //            console.log('目录已经存在');
    //            console.log(stats.isDirectory());
    //        }
    //
    //})
    
    
    
    //2. 找出html目录下面的所有的目录,然后打印出来
    
    //错误写法
    //fs.readdir('html',function(err,files){
    //             if(err){
    //                    console.log(error);
    //
    //             }else{  /*判断是目录还是文件夹*/
    //                 console.log(files);  /*数组*/
    //
    //                 for(var i=0;i<files.length;i++){
    //
    //                     console.log(files[i]);
    //                     fs.stat(files[i],function(error,stats){  /*循环判断是目录还是文件  ---异步 */
    //
    //                            console.log(files[i]);
    //                     })
    //                 }
    //
    //             }
    //
    //
    //})
    //
    
    //打印出什么   3 3  3
    //for(var i=0;i<3;i++){
    //
    //    setTimeout(function(){
    //        console.log(i);
    //    },100)
    //}
    
    
    
    
    //正确的写法
    
    var filesArr=[];
    fs.readdir('html',function(err,files){
                 if(err){
                        console.log(error);
    
                 }else{  /*判断是目录还是文件夹*/
                     //console.log(files);  /*数组*/
    
                     (function getFile(i){
    
                         if(i==files.length){  /*循环结束*/
                             console.log('目录:');
                             console.log(filesArr);   /*打印出所有的目录*/
                             return false;
                         }
                         //files[i]  =   css  js   news.html
                         //注意:目录
                         fs.stat('html/'+files[i],function(error,stats){  /*循环判断是目录还是文件 */
    
                             if(stats.isDirectory()){ /*目录*/
    
                                 filesArr.push (files[i]);  /*保存数据*/
                             }
                             //递归掉用
                             getFile(i+1);
                         })
                     })(0)
                 }
    })
  • 相关阅读:
    基于 Token 的身份验证
    学以致用二---配置Centos7.2 基本环境
    学以致用一 安装centos7.2虚拟机
    #!/usr/bin/env python与#!/usr/bin/python的区别
    centos7.2下安装python3.6.2
    Day1-python基础-变量常量
    Day1-python基础
    学python之路前的一些话
    Mybatis generator自动生成mybatis配置和类信息
    MyBatis Generator generatorConfig.xml配置详解
  • 原文地址:https://www.cnblogs.com/loaderman/p/11494221.html
Copyright © 2011-2022 走看看