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 相关文章推荐
firefox下frameset取不到值的解决方法
Sep 06 Javascript
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
javascript实现文本域写入字符时限定字数
Feb 12 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
json字符串之间的相互转换示例代码
Aug 21 Javascript
jQuery弹出窗口简单实现代码
Mar 09 Javascript
微信小程序实现锚点定位楼层跳跃的实例
May 18 Javascript
vue实现路由懒加载及组件懒加载的方式
Jun 11 Javascript
vue实现输入一位数字转汉字功能
Dec 13 Javascript
React forwardRef的使用方法及注意点
Jun 13 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 删除cookie方法详解
2014/12/01 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
php导出生成word的方法
2015/12/25 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
小程序实现分类页
2019/07/12 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
Python正则表达式指南 推荐
2018/10/09 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
UNIX文件类型
2013/08/29 面试题
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
小学教师的个人自我鉴定
2013/10/26 职场文书
前台领班岗位职责
2013/12/04 职场文书
师恩难忘教学反思
2014/04/27 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers