node.js 学习笔记(node.js 文件系统)

node.js 文件系统

Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API

Node 导入文件系统模块(fs)语法如下所示:

var fs = require('fs');

同步

fs.readFileSync()

异步

fs.readFile()

  • 注:异步函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)

  • 建议使用异步方法,异步方法性能更高,速度更快,而且没有阻塞

打开文件

语法:

fs.open();

参数:

path : 文件的路径

flags : 文件打开的行为

callback : 回调函数,带有两个参数:callback(err, fd)

Flag 描述
r 以读取模式打开文件。如果文件不存在抛出异常。
r+ 以读写模式打开文件。如果文件不存在抛出异常。
rs 以同步的方式读取文件。
rs+ 以同步的方式读取和写入文件。
w 以写入模式打开文件,如果文件不存在则创建。
wx 类似 'w',但是如果文件路径存在,则文件写入失败。
w+ 以读写模式打开文件,如果文件不存在则创建。
wx+ 类似 'w+', 但是如果文件路径存在,则文件读写失败。
a 以追加模式打开文件,如果文件不存在则创建。
ax 类似 'a', 但是如果文件路径存在,则文件追加失败。
a+ 以读取追加模式打开文件,如果文件不存在则创建。
ax+ 类似 'a+', 但是如果文件路径存在,则文件读取追加失败。

node.js 学习笔记(node.js 文件系统)

获取文件信息

语法:

fs.stat();

参数:

path : 文件路径

callback : 回调函数,带有两个参数如:(err, stats)

stats是fs.stat对象

fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性

方法 描述
stats.isFile() 如果是文件返回 true,否则返回 false。
stats.isDirectory() 如果是目录返回 true,否则返回 false。
stats.isBlockDevice() 如果是块设备返回 true,否则返回 false。
stats.isCharacterDevice() 如果是字符设备返回 true,否则返回 false。
stats.isSymbolicLink() 如果是软链接返回 true,否则返回 false。
stats.isFIFO() 如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道。
stats.isSocket() 如果是 Socket 返回 true,否则返回 false。

node.js 学习笔记(node.js 文件系统)

写入文件

语法:

fs.writeFile();

writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容

参数:

file : 文件名或文件描述符

data : 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象

callback : 回调函数,带一个参数(err),在写入失败时返回

node.js 学习笔记(node.js 文件系统)

读取文件

语法:

fs.readFile();

参数:

file : 文件名或文件描述符

callback : 回调函数,带一个参数(err,data),在写入失败时返回

node.js 学习笔记(node.js 文件系统)

关闭文件

语法:

fs.close();

参数:

fd : 通过 fs.open() 方法返回的文件描述符

callback : 回调函数,没有参数

node.js 学习笔记(node.js 文件系统)

截取文件

语法:

fs.ftruncate();

参数:

fd : 通过 fs.open() 方法返回的文件描述符

len : 文件内容截取的长度

callback : 回调函数,没有参数

node.js 学习笔记(node.js 文件系统)

删除文件

语法:

fs.unlink();

参数:

path : 文件路径

callback : 回调函数,没有参数

node.js 学习笔记(node.js 文件系统)

创建目录

语法:

fs.mkdir();

参数:

path : 文件路径

callback : 回调函数,没有参数

node.js 学习笔记(node.js 文件系统)

读取目录

语法:

fs.readdir();

参数:

path : 文件路径

callback : 回调函数,带有两个参数(err, files),files 为 目录下的文件数组列表

node.js 学习笔记(node.js 文件系统)

删除目录

语法:

fs.rmdir();

参数:

path : 文件路径

callback : 回调函数,没有参数

node.js 学习笔记(node.js 文件系统)