该模块是核心模块,需要使用require导入后使用,该模块提供了一些操作文件的API.
例1:打开指定目录下的文件(异步版:异步操作打开一个文件不会影响后续代码的执行,操作方法完成后将以回调的方式对后续操作进行处理) 同步版:会阻塞后续代码的执行,且不以回调的方式,而是通过方法的返回值进行操作
fs.open(path, flags ,[mode], callback)
path : 要打开的文件的路径
flags : 打开文件的方式 读/写
mode : 设置文件的模式 读/写/执行 4/2/1
callback : 回调函数的两个参数 (err:文件打开失败的错误保存在err里面,如果成功err则为null fd :被打开的文件的标识)
返回结果:
例2:打开指定目录下的文件(同步版:会阻塞后续代码的执行,且不以回调的方式,而是通过方法的返回值进行操作)
返回结果:3
例3:读取文件内容
fs.read(fd, buffer, offset, lengh, position, callback)
fd: 通过open方法成功打开文件返回的编号 buffer: Buffer对象 (读取的内容填充到buffer对象里面)
offset: 偏移量指的是从Buffer对象的哪个位置开始填充 length: 读取的内容长度 position:从文件的哪个位置开始读取
例4:写文件
当我们要对打开的文件进行写操作的时候,打开文件的模式应该是 读写 方式
fs.write(fd,buff,offset,length,position,callback)
fd: 打开的文件 buff: 要写入的数据 offset: buff对象中要写入的数据的起始位置
length: 要写入的buff数据的长度 position: fd中的起始位置 callback: 回调
结果:原本1.text 里面的内容由“abc”变成“123d”例5: fs.write(fd, data, position, encoding)
把data写入到文档中通过指定的fd, 如果data不是buffer对象的实例则会把值强制转化成一个字符串
结果:原本1.text 里面的内容由“123d”变成“123d 12345”
例6:fs.writeFile(filename,data,[options],callback)
异步的将数据写入一个文件,如果文件不存在则新建,如果文件原先存在,会被替换
data可以是一个string, 也可以是一个原生Buffer.
例7:fs.appendFile(filename, data, [options], callback)
异步的将数据添加到文件的尾部,如果文件不存在,会创建一个新的文件。data可以是一个string,也可以是原生Buffer
结果:原本2.text 里面的内容由“hello”变成“hello-nana”