美文网首页
node.js基本模块-fs

node.js基本模块-fs

作者: 有幸的风 | 来源:发表于2018-01-27 16:44 被阅读0次

fs模块为node.js的内置模块,同时提供了同步和异步的方法。

简单回顾同步和异步的区别:

    1.异步在执行IO操作时,js代码不需要等待IO操作执行完毕,而是直接传入回调函数,待IO操作执行完毕,将其数值作为回调函数参数进行下一步操作。

    2.同步在执行IO操作时,需要等待函数的返回。

总体来说,同步代码容易理解,方便编写,但是执行过程中需要等待函数返回,因此会耗费时间。

读取文件:

异步读取文件:

a.文本文件的读取

异步读文件

上述代码用于读取一个文件名为sample.txt的文件,值得注意的是,该文件的路径在当前目录,且需要声明编码格式为utf-8;

异步读取时,传入的回调函数接收两个参数,当正常读取时,err参数为null,data参数为读取到的String。当读取发生错误时,err参数代表一个错误对象,data为undefined。这也是Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果。后面我们还会经常编写这种回调函数。

因此,当文件读取出错时,利用参数err即可得出。

b.二进制文件的读取

上一篇文章我们介绍了Buffer对象,Buffer对象可以和String相互转换。

Buffer->String String->Buffer

当读取二进制文件时,不传入文件编码时,回调函数的data参数将返回一个Buffer对象。在node.js中,Buffer对象就是一个包含零个或任意个字节的数组(注意和Array不同)。

读取二进制文件

上述代码可读取一个文件名为sample.xxx(其后缀名可为二进制文件的后缀),二进制文件,那么对二进制文件,我们只需要知道:包含在ASCll及扩展 ASCII字符中编写的数据或程序指令的文件。计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件。

同步读取文件:

fs也提供相应的同步读取函数。同步读取的函数和异步函数相比,多了一个Sync后缀,并且不接收回调函数,函数直接返回结果。

同步读文件

同步读文件会直接返回结果,那么如何看文件是否读取出错呢?

需要用try...catch捕获该错误

写文件:

将数据写入文件是通过fs.writeFile()实现的。

写文件

writeFile()的参数依次为文件名、数据和回调函数。如果传入的数据是String,默认按UTF-8编码写入文本文件,如果传入的参数是Buffer,则写入的是二进制文件。回调函数由于只关心成功与否,因此只需要一个err参数,当然写文件也有一个同步方法,叫writeFileSync(),其用法与同步读文件相似,在这里我们不多做讨论。

如果我们要获取文件大小,创建时间等信息,可以使用fs.stat(),它返回一个Stat对象,能告诉我们文件或目录的详细信息,stat()也有一个对应的同步函数statSync()。

stat获取文件信息

在web开发中,我们通常选用异步代码。

相关文章

  • 关于node.js一些模块的记录「FS模块」

    目录 Node.JS教程 FS模块 Path模块 FS模块 Path模块 Node.js path 模块提供了一些...

  • 2016,9,13

    ##node.js的学习 #node.js的fs模块 var fs = require('fs'); functi...

  • 八:Node文件系统管理

    导入:var fs = require("fs") 定义:Node.js 文件系统(fs 模块)模块中的方法均有异...

  • node.js文件操作

    fs 文件操作用的模块为node.js中的fs模块.因此要提前将其引入. var fs = require('fs...

  • Node.js

    一、入门 1.fs模块 search node.js fs 文档(文件系统模块) 2.http模块 search ...

  • 3-廖雪峰-node-fs模块

    fs文件读取模块 Node.js内置的fs模块就是文件系统模块,负责读写文件。 和所有其它JavaScript模块...

  • Day11 文件系统

    fs模块 Node.js内置的fs模块就是文件系统模块,负责读写文件。和所有其它JavaScript模块不同的是,...

  • Node.js基本模块

    fs模块 node.js内置的fs模块就是文件系统模块,负责读写文件。与所有其他JavaScript模块不同的是,...

  • 6-2 Node.js 文件模块

    Node.js内置的fs模块就是文件系统模块,负责读写文件。 和所有其它JavaScript模块不同的是,fs模块...

  • node.js基本模块-fs

    fs模块为node.js的内置模块,同时提供了同步和异步的方法。 简单回顾同步和异步的区别: 1.异步在执行I...

网友评论

      本文标题:node.js基本模块-fs

      本文链接:https://www.haomeiwen.com/subject/glgnaxtx.html