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 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
用dtree实现树形菜单 dtree使用说明
Oct 17 Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 Javascript
js判断上传文件的类型和大小示例代码
Oct 18 Javascript
js实现幻灯片播放图片示例代码
Nov 07 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
AngularJS 依赖注入详解和简单实例
Jul 28 Javascript
javascript 分号总结及详细介绍
Sep 24 Javascript
JS简单生成随机数(随机密码)的方法
May 11 Javascript
如何实现双向绑定mvvm的原理实现
May 28 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
PHP 中的类
2006/10/09 PHP
怎样去阅读一份php源代码
2009/08/21 PHP
解析isset与is_null的区别
2013/08/09 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
学习使用ExpressJS 4.0中的新Router的用法
2018/11/06 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python批量解压zip文件的方法
2019/08/20 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
c++工程师面试问题
2013/08/04 面试题
环境科学专业个人求职信
2013/12/15 职场文书
中秋节主持词
2014/04/02 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫
python turtle绘图
2022/05/04 Python