zoukankan      html  css  js  c++  java
  • Node文件操作简单api

    文件读取和写入

    没有声明encoding,所以返回的是buffer(二进制数据), 声明了encoding,所以返回的是普通字符串

    同步读取

    • 无声明encoding
     fs.readFileSync(filename);
    
    
    • 声明了encoding
     fs.readFileSync(filename,{encoding: 'utf-8'})
    
    • 异常处理

    // 文件读取异常处理:通过try、catch

    try{
        var errStr = fs.readFileSync('noneExist.txt');
    }catch(err){
        console.log(err.message);  // 输出 ENOENT, no such file or directory 'noneExist.txt'
    }
    

    文件异步读取

    • 无声明encoding
    fs.readFile('test.txt', function(err, data){
        if(err){
            console.log('文件读取失败');
        }else{
            console.log(data);  // 输出 <Buffer 68 65 6c 6c 6f 0a>
        }
    });
    
    • 声明了encoding
    fs.readFile('test.txt', {encoding: 'utf-8'}, function(err, data){
        if(err){
            console.log('文件读取失败');
        }else{
            console.log(data);  // 输出 hello
        }
    });
    
    • 异常处理
    fs.readFile('noneExist.txt', {encoding: 'utf-8'}, function(err, data){
        if(err){
            console.log('文件读取失败');  // 输出 文件读取失败
        }else{
            console.log(data);
        }
    });
    

    文件写入函数

    1. 同步 fs.writeFileSync
    2. 异步 fs.writeFile

    同步写入

     fs.writeFileSync(filename, data, [options])
    
    data 
    
    要往文件里写的内容,可以是字符串,也可以是二进制数据。当为二进制数据时候,options.encoding 会被忽略
     * {Object}    options
     * {String} options.encoding 编码,默认是utf8
     * {Number} options.mode=438 模式
     * {String} options.flag=w 写文件的模式
    
    
    • 覆盖写入
    fs.writeFile('1.txt', '文件已存在,则覆盖内容 -- '+(new Date()-0));
    
    
    • 往已经存在的文件里追加内容
    fs.writeFile('1.txt', '
    文件已存在,并追加内容 -- '+(new Date()-0), {
        flag: 'a'
    });
    

    异步写入

    fs.writeFile('1.txt', '
    文件已存在,并追加内容 -- '+(new Date()-0), {
        flag: 'a'
    }, function(err){
        if(err) throw err;
        console.log('exists.txt已存在,内容被覆盖!');
    });
    

    文件信息

    • 同步
    var fs = require('fs');
    var statInfo = fs.statSync('node.md');
    console.log(statInfo);
    
    • 异步

    fs.stat(path, [callback(err, stats)])

    var fs = require('fs');
    fs.stat('content.txt', function(err, stats){
     if(err){
      throw err;
     }else{
      console.log(stats);
     }
    })
    
    { dev: 681374970,
      mode: 33206,
      nlink: 1,
      uid: 0,
      gid: 0,
      rdev: 0,
      blksize: undefined,
      ino: 1125899908220272,
      size: 2499,
      blocks: undefined,
      atime: 2017-10-25T03:46:03.093Z,
      mtime: 2017-10-25T04:19:43.198Z,
      ctime: 2017-10-25T04:19:43.198Z,
      birthtime: 2017-10-25T03:46:03.093Z }
    
  • 相关阅读:
    PHP解决imagecopymerge合成图片后黑色边角的问题
    cmake简单介绍
    python pytest测试框架介绍七 ---测试用例显示用例注释名称
    docker day001
    C语言 字节数组和hex和互相转换
    glsl 内置数学函数
    springboot分析——自定义启动类
    springboot源码分析——自动配置流程
    springboot源码分析——SPI扩展机制
    springboot分析——与其他组件的整合(JPA规范/atomikos/redis)
  • 原文地址:https://www.cnblogs.com/oneboi/p/7728286.html
Copyright © 2011-2022 走看看