node学习笔记(四)——File System文件系统模块,打开文件,读取文件,写文件

该模块是核心模块,需要使用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”


猜你喜欢

转载自blog.csdn.net/rqlinna/article/details/80107200