fs模块的三个常用方法

1.fs.readFile() -- 读文件

2.fs.writeFile() -- 写文件

3.fa.stat() -- 查看文件信息

fs模块不同于其它模块的地方是它有异步和同步两种方法,其它模块只有异步方法,异步和同步的方法名区别在于同步方法在异步的方法名后面加了"Sync"

1.fs.readFile()

//使用ES的严格模式

"use strict";

//引入fs模块

const fs = require("fs");

fs.readFile("test.txt", "utf-8", function (err, data) {

  //判断文件是否正确读取,err存储着读取时的错误信息

  if(err){

    console.log(err);

  } else {

    //正确读取时打印读取出来的信息

    console.log(data);

  }

});

注:不加第二个参数"utf-8"时data输出的将是一个Buffer对象

可以将Buffer转换成String:data.toString()

String转换成Buffer对象:Buffer.from(data, "uft-8");

test.txt与该js脚本是在同一文件夹下的

上面是异步读取文件的方式,下面是同步读取文件的方式

//判断同步读取是否出错

try{

  let file = fs.readFileSync("test.txt", "utf-8");

  console.log(file);

} catch( err ) {

  //如果出错就打印出出错信息

  console.log(err);

}

2.fs.writeFile()

"use strict";

const fs = require("fs");

fs.writeFile("test.txt", "你要写入的信息", function(err) {

  if(err) {

    console.log(err);

  } else {

    console.log("Write OK!");

  }

});

同步写入文件方法与readFile类似,这里就不赘述了

3.fs.stat()

"use strick";

const fs = require("fs");

fs.stat("test.txt", function(err, stat){

  if(err) {

    console.log(err);
  } else {

    console.log("是否是文件:" + stat.isFile());
    console.log("是否是文件夹:" + stat.isDirectory() );
    if( stat.isFile() ) {

      //输出文件大小
      console.log("文件的大小是:" + stat.size );
      //输出文件的创建日期
      console.log("文件的创建日期是:" + stat.birthtime );
      //输出文件的最近一次修改的日期
      console.log("文件的最近一次修改日期是:" + stat.mtime );
    }
  }

});

同步方法与readFile同步方法类似,不再赘述

不过stat同步方法与异步方法有一些不同的地方

1.stat异步方法使用的时间是你现在所在时区的时间

2.stat同步方法使用的时间是中时区的时间

Node.js 内置模块fs(文件系统)的更多相关文章

  1. Node.js:fs文件系统模块

    fs文件系统模块,这是一个非常重要的模块,对文件的操作都基于它.该模块的所有方法都有同步和异步两种方式,下面便介绍一下该模块的使用. 1.检测当前进程对文件的权限 使用fs.access(path[, ...

  2. node.js中fs文件系统模块的使用

    node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法 ...

  3. Node.js 内置模块fs的readdir方法 查看某个文件夹里面包含的文件内容

    fs.readdir(path[, options], callback) 例: "use strict"; const fs = require("fs"); ...

  4. Node.js之操作文件系统(一)

    Node.js之操作文件系统(一) 1. 同步方法与异步方法 在Node.js中,使用fs模块来实现所有有关文件及目录的创建.写入及删除操作.,在fs模块中,所有对文件及目录的操作都可以使用同步与异步 ...

  5. Node.js之操作文件系统(二)

    Node.js之操作文件系统(二) 1.创建与读取目录 1.1 创建目录 在fs模块中,可以使用mkdir方法创建目录,该方法的使用方法如下: fs.mkdir(path,[mode],callbca ...

  6. 在Node.js中操作文件系统(一)

    在Node.js中操作文件系统 在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作.在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法.比如在执行读文件操作 ...

  7. node.js的fs核心模块读写文件操作 -----由浅入深

    node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFil ...

  8. Node.js使用fs.renameSync报cross-device link not permitted错误

    在Node.js中,我们可以使用formidable模块来轻松地实现文件上传功能,代码如下: var Q = require('q'); var util = require('util'); var ...

  9. 解决Node.js调用fs.renameSync报错的问题(Error: EXDEV, cross-device link not permitted)

    2014-08-23 今天开始学习Node.js,在写一个文件上传的功能时候,调用fs.renameSync方法错误 出错代码所在如下: function upload(response,reques ...

随机推荐

  1. 【BZOJ2521】[Shoi2010]最小生成树 最小割

    [BZOJ2521][Shoi2010]最小生成树 Description Secsa最近对最小生成树问题特别感兴趣.他已经知道如果要去求出一个n个点.m条边的无向图的最小生成树有一个Krustal算 ...

  2. EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台

    前言 随着Android系统的不断更新和发展,现在越来越多的硬件产品选择用安卓系统作为运行环境,电视机,机顶盒.门禁.行车记录仪.车载系统.单兵设备等等,Android系统底层还是Linux,但对上层 ...

  3. 谈谈EJB是怎样公布Web Service的

    定义 我们常常会听到.xx项目中用到了Web Service.那么.什么是Web Service呢? 首先让我们来了解一下Web Service.Web Service技术.就是能使得执行在不同机器上 ...

  4. 【网络基础系列二】BOOTP、DHCP协议

    BOOTP 含义:BOOT Protocol,引导协议 作用:引导无盘计算机或者第一次启动的计算机获取以下网络配置信息: 主机的IP地址.子网掩码 路由器(网关)的IP地址 DNS服务器IP地址 C/ ...

  5. self = [super init]的解释

    在Object-C中我们很多时候都会重写init方法.一般情况下我们都会这样写: -(instancetype)initWithDic:(NSDictionary *)dic{ if(self=[su ...

  6. ES6 对Number的扩展

    Number.isFinite(), Number.isNaN() ES6 在Number对象上,新提供了Number.isFinite()和Number.isNaN()两个方法. Number.is ...

  7. 安装python解释器

    Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单 打开官网 https://www.python.org/d ...

  8. html5--5-3 给直线添加样式

    html5--5-3 给直线添加样式 学习要点 strokeStyle属性:设置颜色.渐变或模式(本节课只涉及到颜色) lineWidth属性:--设置线宽 Canvas的路径方法 moveTo() ...

  9. tflearn 中文汉字识别模型试验汇总

    def get_model(width, height, classes=40): # TODO, modify model # Building 'VGG Network' network = in ...

  10. linux安装netcat 运行udp服务器

    liunx下安装netcat 1.下载安装包 wget https://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1. ...