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 相关文章推荐
jquery动画3.创建一个带遮罩效果的图片走廊
Aug 24 Javascript
js比较和逻辑运算符的介绍
Mar 10 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
Apr 02 Javascript
跟我学习javascript的call(),apply(),bind()与回调
Nov 16 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 Javascript
JavaScript数组去重的几种方法
Apr 07 Javascript
小程序input数据双向绑定实现方法
Oct 17 Javascript
js实现自定义滚动条的示例
Oct 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
PHP时间戳使用实例代码
2008/06/07 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
2019/02/27 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
url参数中有+、空格、=、%、&、#等特殊符号的问题解决
2013/05/15 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
jquery插件开发之实现jquery手风琴功能分享
2014/03/10 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
外语专业毕业生个人的自荐信
2013/11/19 职场文书
考博专家推荐信
2014/05/10 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫