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封装的一个js分页
Nov 15 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
Nov 12 Javascript
js数组转json并在后台对其解析具体实现
Nov 20 Javascript
JavaScript开发人员的10个关键习惯小结
Dec 05 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
微信小程序 rpx 尺寸单位详细介绍
Oct 13 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
从零学习node.js之express入门(六)
Feb 25 Javascript
javascript遍历json对象的key和任意js对象属性实例
Mar 09 Javascript
AngularJS常见过滤器用法实例总结
Jul 06 Javascript
Vue 进入/离开动画效果
Dec 26 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新手上路(三)
2006/10/09 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
destoon之一键登录设置
2014/06/21 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
node.js [superAgent] 请求使用示例
2015/03/13 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
js重写方法的简单实现
2016/07/10 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
Python中的文件和目录操作实现代码
2011/03/13 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
python实现京东秒杀功能
2018/07/30 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
医学专业毕业生个人求职信
2013/12/25 职场文书
单位未婚证明范本
2014/11/25 职场文书
2015年保管员工作总结
2015/04/30 职场文书
2015年度企业工作总结
2015/05/21 职场文书