首页 > 语言 > JavaScript > 正文

详谈Node.js之操作文件系统

2024-05-06 15:12:13
字体:
来源:转载
供稿:网友

1. 同步方法与异步方法

在Node.js中,使用fs模块来实现所有有关文件及目录的创建、写入及删除操作。,在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法。这两者区别是:同步方法立即返回操作结果,在使用同步方法执行的操作结束之前,不能执行后续代码,代码类似如下:

Var fs = require('fs')var data = fs.readFileSysnc('./index.html','utf8')//等待操作返回结果,然后利用该结果console.log(data)

而异步方法将操作结果作为回调函数的参数进行返回,在方法调用之后,可以立即执行后续代码,代码如下:

var fs = require('fs')fs.readFile('./index.html','utf8'.function(err,data){  //操作结果作为回调函数的第二个参数返回  console.log(data)})

另外,当使用如下所示的方法调用多个异步方法时,并不能确保操作结果的返回顺序

fs.readFile('./file.html',function(err,data){  //回调函数代码  })fs.readFile('./otrher.html',function(err,data){  //回调函数代码  })

在上述代码中,我们同时执行两个文件的读取操作,但是并不确保哪个操作结果先辈返回。如果要确保在一个问价读取完毕后再读取两一个文件,我们应使用如下方法:

fs.readFileSync('./file.html',function(err,data){  //回调函数代码  })fs.readFileSync('./otrher.html',function(err,data){  //回调函数代码  })

2. 对文件执行读写操作

2.1 文件的完整读写

可以使用readFile方法或者readFileSync方法完整读取一个文件:

fs.readFile(filename,[options],callback)//第一个参数:必选指定读取文件的完整文件路径及文件名第二个参数:指定读取文件时需要使用的选项,在该参数值对象中可以使用flag属性指定对该文件采取什么操作,默认为‘r'option:  flag'r':读取文件,如果文件不存在则抛出异常    'r+':读取并写入文件,如果文件不存在则抛出异常    'rs':以同步方式读取文件并通知操作系统忽略本地文件系统缓存,如果文件不存在则抛出异常。因为本属性值忽略本地缓存,适用于操作网络文件系统,但由于其对性能产生一定的负面影响,不建议在其他环境下使用    'w':写入文件,如果文件不存在则创建文件,如果文件存在则清空文件内容    'wx':作用与'w'类似,但以排他方式写入文件    'w+':读取并写入文件。如果不存在则创建文件,如果该文件已存在则清空文件内容           'wx+':作用与'w+'类似,但是以排他方式写入文件           'a':追加写入文件,如果文件不存在则创建文件    'ax':作用与'a+'类似,但是以排他方式打开文件  encoding:    utf8,ascii,base64,callback(err,data){  //回调函数代码略}//第一个参数为读取文件操作失败时触发的错误对象第二个参数值为读取到的文件内容            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选