node 文件系统
该模块是核心模块,需要使用 require 导入后使用
底层方法
fs.open(path, flags, [mode], callback)
:异步版的文件读取path
: 要打开的文件的路径flags
: 打开文件的方式 读/写,12种不同方式?mode
: 设置文件的模式 前提是这个文件是已存在的,读/写/执行 4/2/1callback
: 回调err
: 文件打开失败的错误保存在err里面,如果成功err为nullfd
: 被打开文件的标识,和定时器
fs.openSync(path, flags, [mode])
:fs.open() 的同步版,返回值为fd
fs.read(fd, buffer, offset, length, position, callback)
:从指定的文档标识符fd
读取文件数据。fd
: 通过open方法成功打开一个文件返回的编号buffer
: buffer对象, 缓冲区,数据将会写入这里。offset
: 新的内容添加到buffer中的起始位置,向缓冲区 buffer 写入的偏移量。length
: 添加到buffer中内容的长度position
:读取的文件中的起始位置,为null,将会从文件当前的位置读取数据。callback
: 回调err
:错误bytesRead
:buffer的长度,读取的字节buffer
: buffer对象
fs.readSync(fd, buffer, offset, length, position)
:fs.read()的同步版,返回bytesRead
fs.write(fd, buffer, offset, length[, position], callback)
:通过文件标识fd,向指定的文件中写入buffer通过文件标识fd,向指定的文件中写入buffer.
/fs.write(fd, data[, position[, encoding]], callback)
:通过指定的fd把data写入到文档中.fd
: 打开的文件标识buffer
: 要写入的数据offset
: buffer对象中要写入的数据的起始位置length
: 要写入的buffer数据的长度data
: 如果data不是buffer对象的实例则会把值强制转化成一个字符串。position
: 是参考当前文档光标的位置,然后从该处写入数据。encoding
: 是预期得到一个字符串编码callback
:回调函数 (err, written, string)
fs.writeSync(fd, buffer, offset, length[, position])
/fs.writeSync(fd, data[, position[, encoding]])
fs.close(fd, callback)
:关闭一个打开的文件fs.closeSync(fd)
: fs.close() 的同步版本
更易用的方法
fs.writeFlie(filename, data, [options], callback)
:
异步的将数据写入一个文件,如果文件不存在则新建, 如果文件原先存在,会被替换。filename
: 文件路径,data
: data 可以是一个string,也可以是一个原生buffer。options
: 选项encoding
:文件编码default = ‘utf8’mode
: default = 438 (aka 0666 in Octal)flag
: default = ‘a’
callback
: 回调函数
fs.writeFileSync(filename, data, [options])
:fs.writeFile的同步版本。fs.appendFile(filename, data, [options], callback)
:异步的将数据添加到一个文件的尾部,如果文件不存在,会创建一个新的文件。filename
: 文件路径,data
: data 可以是一个string,也可以是一个原生buffer。options
: 选项encoding
:文件编码default = ‘utf8’mode
: default = 438 (aka 0666 in Octal)flag
: default = ‘a’
callback
: 回调函数
fs.appendFileSync(filename, data, [options])
:fs.appendFile的同步版本。fs.exists(path, callback)
:检查指定路径的文件或者目录是否存在。path
:路径callback
: callback 传入的参数指明存在 (true) 或者不存在 (false).
fs.existsSync(path)
:fs.exists 函数的同步版。fs.readFile(filename, [options], callback)
:异步读取一个文件的全部内容filename
:文件路径options
:encoding
: default = null,如果未指定编码方式,原生buffer就会被返回。flag
: default = ‘r’
callback
:(err, data), data 就是文件的内容
fs.readFileSync(filename, [options])
:fs.readFile的同步版本。 返回文件名为 filename 的文件内容。fs.unlink(path, callback)
:删除一个文件,回调函数(callback)只接受一个参数:可能出现的异常信息.fs.unlinkSync(path):fs.unlink()
: 的同步版本fs.rename(oldPath, newPath, callback)
:异步版本的重命名函数.完成时的回调函数(callback)只接受一个参数:可能出现的异常信息.fs.renameSync(oldPath, newPath)
:fs.rename() 的同步版本fs.stat(path, callback)
:读取文件的状态信息,callback,接收两个参数: (err, stats) ,其中 stats 是一个 fs.Stats 对象。fs.statSync(path, callback)
:fs.stat() 的同步版本,返回一个 fs.Stats 实例。fs.watch(filename, [options], [callback])
:观察指定路径的改变,filename 路径可以是文件或者目录。
回调函数得到两个参数 (event, filename)。其中 event 是 ‘rename’(重命名)或者 ‘change’(改变),而 filename 则是触发事件的文件名。
文件夹处理
fs.mkdir(path, [mode], callback)
:创建文件夹,回调函数只接受一个参数:可能出现的异常信息。---》fs.mkdirSync(path, [mode])
同步版fs.rmkdir(path, callback)
:删除文件夹,回调函数只接受一个参数:可能出现的异常信息。---》fs.rmdirSync(path)
同步版fs.readdir(path, callback)
:读取 path 路径所在文件夹的内容。
回调函数 (callback) 接受两个参数 (err, files) 其中 files 是一个存储目录中所包含的文件名称的数组,数组中不包括 ‘.’ 和 ‘..’fs.readdirSync(path)
:同步版的 readdir(). 返回文件名数组,其中不包括 ‘.’ 和 ‘..’ 目录.
这是对于 node 的文件系统 的学习,仅仅过了一遍api,了解了一下处理流程,理解有限,如果有错误之处,请指出,谢谢!