在Node.js中操作文件系统

6.1 同步方法与异步方法
在Node.js中使用fs模块实现所有的与文件相关的操作,包括目录的创建,写入,删除。在fs模块中对文件的操作可以使用同步和异步的方式。在文件的操作方法中方法名称中有Sync后缀的方法都是同步方法,没有Sync方法的都是异步方法。
同步方法与异步方法的区别是:同步方法可以立即返回操作结果,在使用同步方法的时候不可执行后续代码。异步方法将操作结果作为回调函数的参数进行返回,在异步方法被调用之后可以立即执行后续代码。但是在大多数时候使用异步方法。
6.2 对文件执行读写操作
6.2.1 文件的完整读写
在Node.js中进行文件的读写使用fs模块的readFile方法或readFileSync方法。程序实例:
fs.readFile(filename,[option],callbakc);//使用异步文件读取方法
fs.readFileSync(filename,[option],callback);//使用同步的文件读取方法
参数说明:
①filename:必填参数,表示被读取文件的完整路径以及名称。
②option:可选参数,表示将要对文件进行怎样的操作,默认参数为'r'(如果读取的文件不存在就会抛出异常),option的类型如下:
'r':读取文件,如果文件不存在就会抛出异常。
'r+':读取并写入文件,如果文件不存在就会抛出异常。
'rs':以同步方法读取文件并通知操作系统忽略本地文件缓存,如果文件不存在就会抛出异常。
'w':写入文件,如果文件不存在就创建文件, 如果文件存在就清空文件内容再写入内容。
'wx':作用于'w'相似,以排他方式写入文件。
'w+':读取并写入文件,如果文件不存在就创建文件,如果文件存在就清空文件内容。
'wx+':作用与'w+'类似,排他方式打开文件。
'a':追加文件,如果文件不存在就创建文件。
'ax':作用和'a'相似,以排他方式写入文件。
'a+':读取并追加文件,如果文件不存在就创建文件。
'ax+':作用与'a+'相似,以排他方式打开文件。
在option参数中可以使用encoding属性指定用具体的编码格式读取文件内容例如:"UTF-8"、"UTF-16"等。
③callbakc:用于指定该文件读取完成之后执行的函数。回调函数定义如下:
function(err,data){//err表示读取文件发生错误的时候的错误对象,data为读到的文件内容。
}
需要完整写入一个文件的时候使用writeFile()或writeFileSync()方法。程序实例:
fs.writeFile(filename,data,[opyion],callback);
参数说明:
①filename:表示用于指定需要被写入文件的文件路径以及文件名称。
②data:参数表示写入的内容,参数可以是一个字符串或者Buffer对象,或者缓存区的内容 也可以写到文件中。
③option:参数的属性值如下:
flag属性:用于指定对文件采取何种操作,默认值为"w"。
mode属性:用于指定当前文件被打开的读写权限,默认值为0666(可读写)。第一个数字必须是0。
encoding属性:用于指定使用何种编码格式写入文件。默认编码格式为"UTF-8"。
callback:参数表示文件读写完成之后执行的回调函数。

6.2.2 从指定的位置开始读文件
在Node.js中可以使用open方法或者openSync方法打开文件。程序实例:
fs.open(filename,flags,[mode],callback);
可以使用read方法或者readSync方法,从指定的位置读取文件。可以使用wtite方法或者writeSync方法从指定的位置读取数据。
程序示例:
fs.read(fd,buffer,offset,length,position,callback);
参数说明:
①fd:表示参数值必须为open方法所使用的回调函数返回的文件描述符或者openSync方法返回的文件描述符。
②buffer:表示一个Buffer对象。
③offset:表示用于指定开始写入数据的位置。
④length:表示从指定文件中读取的文件字节数。
⑤position:用于指定读取文件开始的位置。
⑥callback:表示回调函数。

在Node.js中使用close()方法或者closeSync()方法关闭文件。程序实例:
fs.close(fd,[callback]);
参数说明:
①fd:表示参数值必须为open方法所使用的回调函数返回的文件描述符或者openSync方法返回的文件描述符。
②callback:表示回调函数。









猜你喜欢

转载自blog.csdn.net/qq_26587339/article/details/53242109