Node.js中的fs模块与文件系统操做相关,主要用于实现文件系统的操做。fs模块中提供了大量与文件系统相关的操做方法,这些方法分为同步方法和异步方法,开发人员能够根据实际须要进行选择,从而对文件系统进行操做。javascript
1、fs模块的同步方法和异步方法java
fs模块中提供了不少与文件操做相关的方法,例如目录建立,文件建立,文件内容的写入与删除等操做。这些与文件操做相关的方法在对文件系统进行操做时大多都有同步与异步这两种方式。 在这些方法中以Sync为后缀的方法都是同步方法,同步方法在执行时须要当即返回操做结果,一个同步方法在操做结束以前不能够执行以后的方法。不以Sync做为后缀的方法都是异步的操做方法,异步方法的特色是不会阻塞程序的执行,异步方法的执行结果是做为回调函数的参数进行返回的。在使用异步方法进行文件操做的时候,并不能保证方法执行结果返回的顺序,由于每个异步方法进行文件操做时须要的时间长短是不彻底相同的,时间较短的操做方法会先返回操做结果,耗时长的异步方法后返回结果。缓存
2、对文件的读写操做app
使用异步的方法读取文件内容。
(2)建立readFileSync.txt文本文件做为同步方法读取内容的文件:异步
使用同步的方法读取文件内容。
(3)建立app.js:函数
var fs = require("fs"); //加载fs模块 /* *使用异步的方式读取文件内容 */ fs.readFile('./readFile.txt', function(err, data){ //若是读取文件过程当中发生错误则将错误信息输出 if(err){ console.log(err); }else{ console.log(data.toString()); //使用toString()方法将读取到的内容转换成字符串并输出 } }); /* *使用同步的方式读取文件内容 */ try{ var content = fs.readFileSync('./readFileSync.txt'); console.log(content.toString()); //使用toString()方法将读取到的内容转换成字符串并输出 }catch(e){ console.log('读取文件内容时发生错误:' + e); }
程序运行截图:ui
异步读取文件内容的readFile()方法能够接收三个参数:编码
readFile(filename, [options], callback);
options选项 | 描述 |
---|---|
‘r’ | 读取文件。 |
‘r+’ | 读取并写入文件。 |
‘rs’ | 以同步方式读取文件而且忽略本地文件系统缓存。 |
‘w’ | 写入文件,若是文件不存在就建立文件。 |
‘wx’ | 以排他的方式写入文件。 |
‘w+’ | 读取并写入文件。 |
‘wx+’ | 读取并写入文件,是以排他的方式打开文件。 |
‘a’ | 追加写入文件,若是文件不存在就建立文件。 |
‘ax’ | 追加并写入文件,以排他的方式打开文件。 |
‘a+’ | 读取并追加文件,若是文件不存在就建立文件。 |
function(err, data){ //回调函数体 }
var fs = require("fs"); /* *以异步的方式向文件中写入内容 */ var string = "经过异步方式写入文件的内容"; fs.writeFile('./writeFile.txt', string, function(err){ if(err){ console.log('向文件中写入内容时发生错误:' + err); }else{ console.log('向文件中写入内容成功。'); } });
程序运行截图:code
fs.writeFile(filename, data, [options], callback);
writeFile()方法中能够接受如下四个参数:对象
flag选项 | 说明 |
---|---|
‘r’ | 读取文件。 |
‘r+’ | 读取并写入文件。 |
‘rs’ | 以同步方式读取文件而且忽略本地文件系统缓存。 |
‘w’ | 写入文件,若是文件不存在就建立文件。 |
‘wx’ | 以排他的方式写入文件。 |
‘w+’ | 读取并写入文件。 |
‘wx+’ | 读取并写入文件,是以排他的方式打开文件。 |
‘a’ | 追加写入文件,若是文件不存在就建立文件。 |
‘ax’ | 追加并写入文件,以排他的方式打开文件。 |
‘a+’ | 读取并追加文件,若是文件不存在就建立文件。 |
mode属性能够用于指定该文件被打开时的读写权限,默认值为066(可读可写)。该属性值是用一个3位数字表示文件或目录全部者、所属组以及其余人的读写权限。1表示可执行权限,2表示可写权限,4表示可读权限。 encoding属性能够用于指定以何种字符编码方式将内容写入到文件中。默认的编码方式是“utf8”,也能够改为“base64”、“ascii”或者其余的字符编码方式。