美文网首页
Node Native (6) fs

Node Native (6) fs

作者: 小懒豆 | 来源:发表于2018-06-05 10:58 被阅读9次

异步方法的最后一个参数都是一个回调函数。 传给回调函数的参数取决于具体方法,但回调函数的第一个参数都会保留给异常。 如果操作成功完成,则第一个参数会是 null 或 undefined。

fs模块概述

一、fs.FSWatcher 类

fs.watch()返回的对象是该类型。

事件

  • change:当一个被监视的目录或文件有变化时触发

  • error:当发生错误时触发。

方法

  • watcher.close():停止监听 fs.FSWatcher 的变化。

二、fs.ReadStream 类

ReadStream 是一个可读流

事件

  • close:当 ReadStream 底层的文件描述符被关闭时触发。

  • open:当 ReadStream 的文件被打开时触发。事件回调函数第一个参数为fd

  • error:当发生错误时触发。

属性

  • readStream.bytesRead:已读取的字节数。

  • readStream.path:流正在读取的文件的路径,指定在 fs.createReadStream() 的第一个参数。

三、fs.WriteStream 类

WriteStream 一个可写流。

事件

  • close:当 WriteStream 底层的文件描述符被关闭时触发。

  • open:当 WriteStream 的文件被打开时触发。事件回调函数第一个参数为fd

属性

  • writeStream.bytesWritten:已写入的字节数。。

  • writeStream.path:流正在写入的文件的路径,指定在 fs.createWriteStream() 的第一个参数。

文件流
  • fs.createReadStream(path[, options]):返回一个新建的 ReadStream 对象
options <string> | <Object>
      flags <string>
      encoding <string>
      fd <integer>
      mode <integer>
      autoClose <boolean>
      start <integer>
      end <integer>
      highWaterMark <integer>
  • fs.createWriteStream(path[, options]):
options <string> | <Object>
      flags <string>
      encoding <string>
      fd <integer>
      mode <integer>
      autoClose <boolean>
      start <integer>

四、fs.Stats 类

fs.stat()fs.lstat()fs.fstat()及其同步版本返回的对象都是该类型。

Stats {
    dev: 2114,
    ino: 48064969,
    mode: 33188,
    nlink: 1,
    uid: 85,
    gid: 100,
    rdev: 0,
    size: 527,
    blksize: 4096,
    blocks: 8,
    atimeMs: 1318289051000.1,
    mtimeMs: 1318289051000.1,
    ctimeMs: 1318289051000.1,
    birthtimeMs: 1318289051000.1,
    atime: 'Mon, 10 Oct 2011 23:24:11 GMT',
    mtime: 'Mon, 10 Oct 2011 23:24:11 GMT',
    ctime: 'Mon, 10 Oct 2011 23:24:11 GMT',
    birthtime: 'Mon, 10 Oct 2011 23: 24: 11 GMT'
}

方法

  • isBlockDevice():
  • isCharacterDevice():
  • isDirectory():
  • isFIFO():
  • isFile():
  • isSocket():
  • isSymbolicLink():

属性

  • dev:
  • ino:
  • mode:
  • nlink:
  • uid:
  • gid:
  • rdev:
  • size:
  • blksize:
  • blocks:
  • atimeMs:
  • mtimeMs:
  • ctimeMs:
  • birthtimeMs:
  • atime:访问时间" - 文件数据最近被访问的时间。
  • mtime:修改时间" - 文件数据最近被修改的时间。
  • ctime:变化时间" - 文件状态最近被改变的时间(修改索引节点数据)。
  • birthtime:创建时间" - 文件创建的时间。

五、fs方法

获取文件信息
  • fs.stat(path, callback):该方法用于检测文件的状态,可以借此来判断某个文件是否存在,callback回调函数有两个参数err和stats。其中err为错误信息参数,stats为一个文件状态对象。

  • fs.lstat(path, callback):获取文件信息(不解析符号链接)

  • fs.fstat(fd, callback):返回文件详细信息

  • fs.existsSync(path):通过检查文件系统来测试给定的路径是否存在

  • fs.access(path[, mode], callback):测试 path 指定的文件或目录的用户权限。

*   `mode` <integer>
    fs.constants.F_OK - path 文件对调用进程可见。  如果没指定 mode,则默认为该值。
    fs.constants.R_OK - path 文件可被调用进程读取。
    fs.constants.W_OK - path 文件可被调用进程写入。
    fs.constants.X_OK - path 文件可被调用进程执行。
修改文件权限、信息
  • fs.utimes(path, atime, mtime, callback):改变 path 所指向的对象的文件系统时间戳。

  • fs.chmod(path, mode, callback):异步地改变文件的权限。

  • fs.chown(path, uid, gid, callback):异步地改变文件的所有者和群组。

文件增删改查
  • fs.appendFile(file, data[, options], callback):异步地追加数据到一个文件,如果文件不存在则创建文件。

  • fs.writeFile(file, data[, options], callback):该方法可用于往指定文件当中写入内容,该内容会覆盖文件当中原有的内容。options参数可选,可以传入编码格式,

options <Object> | <string>
    encoding <string> | <null> 默认为 'utf8'
    mode <integer> 默认为 0o666
    flag <string> 默认为 'a'
  • fs.link(existingPath, newPath, callback):

  • fs.unlink(path, callback):该方法可用于完成指定文件的删除

  • fs.readFile(path[, options], callback):该方法用于读取指定文件当中的内容,options encodingflag ,读取文件一定要设置编码,否则默认是 ”buffer“ 形式出现

  • fs.rename(oldPath, newPath, callback):该方法可用于移动或重命名指定文件

  • fs.mkdir(path[, mode], callback):异步地创建目录,该方法不能完成多级目录的创建,node当中要求要创建的那个文件夹所在的文件夹必须能都存在。

  • fs.rmdir(path, callback):该方法可以用于删除一个空目录。该传入的目录路径当中的目录必须能为一个空目录,

  • fs.readdir(path[, options], callback):该方法可以用于读取一个指定目录当中的信息。callback回调函数当中有两个参数err和files

  • fs.open(path, flags[, mode], callback):callback 打开文件后回调函数,参数默认第一个err,第二个fd

flags
'r' - 以读取模式打开文件。如果文件不存在则发生异常。

'r+' - 以读写模式打开文件。如果文件不存在则发生异常。

'rs+' - 以同步读写模式打开文件。命令操作系统绕过本地文件系统缓存。

这对 NFS 挂载模式下打开文件很有用,因为它可以让你跳过潜在的旧本地缓存。 它对 I/O 的性能有明显的影响,所以除非需要,否则不要使用此标志。


'w' - 以写入模式打开文件。文件会被创建(如果文件不存在)或截断(如果文件存在)。

'wx' - 类似 'w',但如果 path 存在,则失败。

'w+' - 以读写模式打开文件。文件会被创建(如果文件不存在)或截断(如果文件存在)。

'wx+' - 类似 'w+',但如果 path 存在,则失败。

'a' - 以追加模式打开文件。如果文件不存在,则会被创建。

'ax' - 类似于 'a',但如果 path 存在,则失败。

'a+' - 以读取和追加模式打开文件。如果文件不存在,则会被创建。

'ax+' - 类似于 'a+',但如果 path 存在,则失败。

mode 可设置文件模式(权限和 sticky 位),但只有当文件被创建时才有效。默认为 0o666,可读写。
  • fs.read(fd, buffer, offset, length, position, callback):

  • fs.write(fd, buffer[, offset[, length[, position]]], callback):

  • fs.fsync(fd, callback):将内存中数据写入文件;--刷新内存缓冲区;

  • fs.close(fd, callback):

  • fs.copyFile(src, dest[, flags], callback):异步的将 src 拷贝到 dest

监听文件
  • fs.watch(filename[, options][, listener]):监视 filename 的变化,filename 可以是一个文件或一个目录。 返回的对象是一个 fs.FSWatcher

用watcher.close()停止监听

options <string> | <Object>
    persistent <boolean> 指明如果文件正在被监视,进程是否应该继续运行。默认 = true
    recursive <boolean> 指明是否全部子目录应该被监视,或只是当前目录。 默认 = false
    encoding <string> 指定用于传给监听器的文件名的字符编码。默认 = 'utf8'

listener <Function> | <undefined> Default: undefined
    eventType <string>
    filename <string> | <Buffer>
  • fs.watchFile(filename[, options], listener):监视 filename 的变化。 回调 listener 会在每次访问文件时被调用。
[options]
    persistent true表示持续监视,不退出程序;
    interval 单位毫秒,表示每隔多少毫秒监视一次文件
[ listener]
    curr为一个fs.Stat对象,被修改后文件,
    prev,一个fs.Stat对象,表示修改前对象
  • fs.unwatchFile(filename[, listener]):

其他

  • fs.futimes(fd, atime, mtime, callback):改变由所提供的文件描述符所指向的对象的文件系统时间戳

  • fs.readlink(path[, options], callback):

  • fs.realpath(path[, options], callback):

  • fs.fchmod(fd, mode, callback):

  • fs.fchown(fd, uid, gid, callback):

  • fs.fdatasync(fd, callback):

  • fs.ftruncate(fd[, len], callback):如果文件描述符指向的文件大于 len 个字节,则只有前面 len 个字节会保留在文件中。
  • fs.lchmod(path, mode, callback):

  • fs.lchown(path, uid, gid, callback):

  • fs.mkdtemp(prefix[, options], callback):创建一个唯一的临时目录。

  • fs.symlink(target, path[, type], callback):

  • fs.truncate(path[, len], callback):

相关文章

  • Node Native (6) fs

    异步方法的最后一个参数都是一个回调函数。 传给回调函数的参数取决于具体方法,但回调函数的第一个参数都会保留给异常。...

  • 2016,9,13

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

  • Node学习(8)--文件系统

    Node.js 文件系统 Node 导入文件系统模块(fs)语法如下所示:var fs = require("fs...

  • Node 原生学习贴--顺序不分先后,只是做个标记

    Node Native (1) Event Node Native (2) stream Node Native ...

  • 初步认识node.js

    fs系统模块:读取文件: // node 读取文件const fs = require('fs');fs.read...

  • 04-文件读写

    fs模块---》操作文件---》io----》node的特长 fs模块是node非常重要的模块,能体现出node的...

  • 项目升级react-native0.47.1常见问题

    (一)安装react-native-fs库时,执行react-native link react-native-f...

  • fs node

    //公共引用 varfs =require('fs'), path =require('path'); 1、读取文...

  • node:fs

    判断是一个目录还是一个文件 读取一个路径下所有文件

  • Node.js 文件系统

    Node 导入文件系统模块(fs)语法如下所示: var fs = require("fs"); 比起同步,异步方...

网友评论

      本文标题:Node Native (6) fs

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