• node之fs模块


    前言

      fs是filesystem的缩写,该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装。但是,这个模块几乎对所有操作提供异步和同步两种操作方式,供开发者选择。

    一、文件读取

     文件读取又分为同步读取(readFileSync())和异步读取(readFile())

    //1、文件同步读取
    const bufferStr = fs.readFileSync('./file/test.txt'});
    
    console.log(bufferStr);  
    // 因为没有声明encoding 所以返回的是二进制数据
    //<Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64 21>
    
    const str = fs.readFileSync('./file/test.txt',{
    	encoding:'utf-8'
    });
    
    console.log(str);
    //Hello world!
    
    //错误处理 try{ var errStr = fs.readFileSync('test.txt'); }catch(err){ console.log(errStr); } //因为文件不存在,所以 打印出 undefined //2、文件异步读取 fs.readFile('./file/test.txt',{encoding:'utf-8'}, (err,data) =>{ if(err) throw err; console.log('2.1读取数据成功,数据内容为:'+ data); });

      

    二、文件写入

    文件写入包括:fs.writeFile(异步)、fs.writeFileSync(同步)

    格式:fs.writeFile(filename, data, [options], callback)

    [options]
    @param {Object} [options]
    @param {String} options.encoding 编码,默认是utf8
    @param {Number} options.mode=438 模式
    @param {String} options.flag=w 写文件的模式
    @param {Function} callback 回调方法

    const fileName = 'wirteFile_01.txt';
    
    fs.writeFile(fileName, 'Hello World !', (err) => {
        if(err) throw err;
        console.log(fileName + '不存在,被创建了!');
    });
    
    //往存在的文件内写内容
    fs.writeFile(fileName, 'no pain no gain', (err) => {
        if(err) throw err;
        console.log(fileName + '文件被修改了!');
    });
    
    //往文件内追加内容
    fs.writeFile(fileName, 'stay hungry stay foolish',{flag : 'a'}, (err) => {
        if(err) throw err;
        console.log(fileName + '文件被修改了,内容追加!');
    });
    

      

    fs.writeFileSync(同步)

    与异步差不多,就是没有回调。

    三.文件删除

    //异步
    fs.unlink('./file/test.txt', (err) => {
      if (err) throw err;
      console.log('成功删除file中的test.txt');
    });
    
    //同步
    fs.unlinkSync('./file/test.txt', (err) => {
      if (err) throw err;
      console.log('成功删除file中的test.txt');
    });
    

      

    四、文件的监听事件

    //文件的事件监听
    fs.watch('./file', {encoding:'utf-8'}, (eventType, filename) =>{
    	if(filename){
    		console.log('文件名:' + filename + '事件类型:' + eventType);
    	}
    });
    
    //文件名:test3.txt事件类型:rename
    //文件名:hhh.txt事件类型:rename
    //文件名:hhh.txt事件类型:change
    

      

    参考:官方文档

  • 相关阅读:
    推荐一个简洁优雅的博客系统,farbox
    flash从数据流判断图片格式防止xss攻击
    iBatis框架batch处理优化 (转)
    hadoop环境中误删除tmp文件夹的恢复
    Mysql04
    MapReduce中文翻译
    Big Table中文翻译
    GFS中文翻译
    HDFS读写流程
    两个网卡的设置
  • 原文地址:https://www.cnblogs.com/leaf930814/p/7078598.html
Copyright © 2020-2023  润新知