node 文件系统
该模块是核心模块,需要使用 require 导入后使用
底层方法
- fs.open(path, flags, [mode], callback):异步版的文件读取- path: 要打开的文件的路径
- flags: 打开文件的方式 读/写,12种不同方式?
- mode: 设置文件的模式 前提是这个文件是已存在的,读/写/执行 4/2/1
- callback: 回调- err: 文件打开失败的错误保存在err里面,如果成功err为null
- fd: 被打开文件的标识,和定时器
 
 
- 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,了解了一下处理流程,理解有限,如果有错误之处,请指出,谢谢!