一、Node.js提供一组类似UNIX(POSIX)标准的文化操作API。
Node导入文件系统模块(fs)语法所示:
var fs = require("fs")
二、异步和同步
Node.js文件系统(fs模块)模块中的方法均有异步和同步的版本。
例如,读取文件的内容的函数有异步:fs.readFile() 和同步的 fs.readFileSync()
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)
建议使用异步方法,比起同步。异步方法性能更高,速度更快,而且没有阻塞。
例子1:创建file.js,代码如下:
执行结果如下:
三、接下来,具体了解下Node.js文件系统的方法。
1.打开文件
语法:
以下为在异步模式下打开文件的语法格式:
fs.open(path, flags[, mode], callback)
参数:
1.1 path - 文件路径。
1.2 flags - 文件打开的行为。具体值详见下文。
1.3 mode - 设置文件模式(权限), 文件创建默认权限为0666(可读,可写)
1.4 callback - 回调函数,带有两个参数如: callback(err, fd)
例子:
执行结果如下:
四、获取文件信息
语法:
以下为通过异步模式获取文件信息的语法格式:
fs.stat(path, callback)
参数:
1.1 path - 文件路径
1.2 callback - 回调函数:带有两个参数如(err, stats), stats是fs.stats对象。
fs.stat(path)执行后,会将stats类的实例返回给其回调函数。
可以通过stats类中的提供方法判断文件的相关属性。
例如判断是否为文件:
执行结果为:
执行代码:
执行结果为:
五、写入文件
语法:
异步模式语法:
fs.writeFile(file, data[, options], callback)
writeFIle直接打开文件默认是w模式,所以如果文件存在,该方法写入内容会覆盖旧的文件内容。
参数
1.1 file - 文件名或文件描述符。
1.2 data - 要写入文件的数据,可以是string(字符串)或Buffer(缓冲)对象。
1.3 options - 该参数是一个对象,包含{encoding, mode, flag}. 默认编码为utf8,模式为 0666,flag为'w'
1.4 callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
实例:
创建file4.js,代码如下:
执行结果:
六、读取文件
语法:
fs.read(fd, buffer, offset, length, position, callback)
该方法用了文件描符来读取文件。
参数:
1.1 fd - 通过fs.open() 方法返回的文件描述符。
1.2 buffer - 数据写入的缓冲区。
1.3 offset - 缓冲区写入的写入偏移量。
1.4 length - 要从文件中读取的字节数。
1.5 position - 文件读取的起始位置,如果position的值为null,则会从当前文件指针的位置读取。
1.6 callback - 回调函数,有是那个参数err, bytesRead, buffer, err为错误信息,bytesRead表示读取的字节数,buffer为缓冲区对象。
实例:
创建file5.js
执行结果为: