Node.js的fs
模块提供了丰富的API来与本地文件系统交互,包括文件的读取、写入、修改、删除以及目录的操作等。以下是对fs
模块中一些主要方法的归纳:
文件读取
- fs.readFile(path[, options], callback):异步读取文件的全部内容。当读取完成时,回调函数会被调用,并传入一个错误对象(如果有的话)和文件内容。
- fs.readFileSync(path[, options]):同步读取文件的全部内容。如果读取成功,该方法会返回文件内容;如果失败,会抛出异常。
文件写入
- fs.writeFile(file, data[, options], callback):异步地写入数据到文件,如果文件已存在则替换。数据可以是字符串或Buffer。
- fs.writeFileSync(file, data[, options]):同步地写入数据到文件,如果文件已存在则替换。
文件追加
- fs.appendFile(path, data[, options], callback):异步地追加数据到文件的末尾,如果文件不存在则创建文件。
- fs.appendFileSync(path, data[, options]):同步地追加数据到文件的末尾,如果文件不存在则创建文件。
文件打开与关闭
- fs.open(path, flags[, mode], callback):异步地打开文件,并返回一个文件描述符(file descriptor)。
- fs.close(fd, callback):异步地关闭通过
fs.open()
方法打开的文件描述符。 - fs.openSync(path, flags[, mode]) 和 fs.closeSync(fd):分别是
fs.open()
和fs.close()
的同步版本。
目录操作
- fs.mkdir(path[, options], callback):异步地创建目录。如果
options
中的recursive
属性被设置为true
,则可以递归地创建多级目录。 - fs.rmdir(path[, options], callback):异步地删除目录。注意,默认情况下只能删除空目录。
- fs.readdir(path[, options], callback):异步地读取目录的内容,返回一个包含目录项名称的数组。
- fs.mkdirSync(path[, options])、fs.rmdirSync(path[, options]) 和 fs.readdirSync(path[, options]):分别是
fs.mkdir()
、fs.rmdir()
和fs.readdir()
的同步版本。
文件状态与权限
- fs.stat(path[, options], callback):异步地获取文件状态信息,如文件大小、创建时间、修改时间等。
- fs.chmod(path, mode, callback):异步地改变文件的权限。
- fs.chown(path, uid, gid, callback):异步地改变文件的所有者和群组。
- fs.statSync(path[, options])、fs.chmodSync(path, mode) 和 fs.chownSync(path, uid, gid):分别是
fs.stat()
、fs.chmod()
和fs.chown()
的同步版本。
链接与符号链接
- fs.symlink(target, path[, type], callback):异步地创建符号链接。
- fs.readlink(path[, options], callback):异步地读取符号链接的值。
- fs.symlinkSync(target, path[, type]) 和 fs.readlinkSync(path[, options]):分别是
fs.symlink()
和fs.readlink()
的同步版本。
流操作
- fs.createReadStream(path[, options]):创建一个可读流来读取文件内容。
- fs.createWriteStream(path[, options]):创建一个可写流来写入文件内容。
其他操作
- fs.unlink(path, callback):异步地删除文件。
- fs.rename(oldPath, newPath, callback):异步地重命名文件或将其移动到新位置。
- fs.unlinkSync(path) 和 fs.renameSync(oldPath, newPath):分别是
fs.unlink()
和fs.rename()
的同步版本。
注意事项
- Node.js中的文件操作大多支持异步和同步两种方式,异步操作通过回调函数处理结果,而同步操作则直接返回结果或抛出异常。
- 在使用异步方法时,应该正确处理回调函数中的错误,避免程序因为未处理的异常而崩溃。
- Node.js的版本更新可能会引入新的API或废弃旧的API,因此建议查阅最新的Node.js文档以获取最准确的信息。
以上是对Node.js fs
模块中一些主要方法的归纳,这些方法覆盖了文件系统的基本操作,可以满足大多数场景下的需求。