Node.js读取文件内容示例


Posted in Javascript onMarch 07, 2017

Node.js读取文件内容包括同步和异步两种方式。

1、同步读取,调用的是readFileSync

var rf=require("fs"); 
var data=rf.readFileSync("test","utf-8"); 
console.log(data); 
console.log("READ FILE SYNC END");

输出结果,先内容,后end

Node.js读取文件内容示例

2、异步读取,调用readFile

var rf=require("fs"); 
rf.readFile("test",'utf-8',function(err,data){ 
  if(err){ 
    console.log("error"); 
  }else{ 
    console.log(data); 
  } 
}); 
console.log("READ FILE ASYNC END");

输入结果先end,后内容

Node.js读取文件内容示例

同步式读取文件的方式比较容易理解,将文件名作为参数传入 fs.readFileSync 函数,阻塞等待读取完成后,将文件的内容作为函数的返回值赋给 data 变量,接下来控制台输出 data 的值,最后输出 end。

异步式读取文件就稍微有些违反直觉了,end先被输出。要想理解结果,我们必须先知道在 Node.js 中,异步式 I/O 是通过回调函数来实现的。fs.readFile 接收了三个参数,第一个是文件名,第二个是编码方式,第三个是一个函数,我们称这个函数为回调函数。

JavaScript 支持匿名的函数定义方式, 譬如例子中回调函数的定义就是嵌套在fs.readFile 的参数表中的。
上面异步读取readFile中的参数回调函数可以拿出来。

var rf=require("fs"); 
function callBack(err,data){ 
  if(err){ 
    console.log("error"); 
  }else{ 
    console.log(data); 
  } 
} 
rf.readFile("test","utf-8",callBack); 
console.log("READ FILE ASYNC END");

fs.readFile 调用时所做的工作只是将异步式 I/O 请求发送给了操作系统,然后立即返回并执行后面的语句,执行完以后进入事件循环监听事件。当 fs 接收到 I/O 请求完成的事件时,事件循环会主动调用回调函数以完成后续工作。

整个项目文件路径如图所示。tes为要读取的文件。

Node.js读取文件内容示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一些有关检查数据的JS代码
Sep 07 Javascript
学习并汇集javascript匿名函数
Nov 25 Javascript
关于 文本框默认值 的操作js代码
Jan 12 Javascript
js判断undefined变量类型使用typeof
Jun 03 Javascript
js实现可控制左右方向的无缝滚动效果
May 29 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 Javascript
js实现下一页页码效果
Mar 07 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
Node.js事件的正确使用方法
Apr 05 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
Mar 07 #Javascript
AngularJS的Filter的示例详解
Mar 07 #Javascript
js上下视差滚动简单实现代码
Mar 07 #Javascript
js实现下一页页码效果
Mar 07 #Javascript
原生JS中slice()方法和splice()区别
Mar 06 #Javascript
浅析vue component 组件使用
Mar 06 #Javascript
js常用的继承--组合式继承
Mar 06 #Javascript
You might like
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
JavaScript Prototype对象
2009/01/07 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
2012/08/06 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
js中document.referrer实现移动端返回上一页
2017/02/22 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
理解Python中的类与实例
2015/04/27 Python
python实现ip代理池功能示例
2019/07/05 Python
python3实现高效的端口扫描
2019/08/31 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
股权收购意向书
2014/04/01 职场文书
英语专业毕业生求职信
2014/05/24 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
刘胡兰观后感
2015/06/16 职场文书
证婚人致辞精选
2015/07/28 职场文书