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网页关闭时提醒效果脚本
Oct 22 Javascript
js 页面输出值
Nov 30 Javascript
JavaScript入门教程 Cookies
Jan 31 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
JS实现的简单图片切换功能示例【测试可用】
Feb 14 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
详解jQuery中的easyui
Sep 02 jQuery
js实现表单项的全选、反选及删除操作示例
Jun 05 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 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文件操作实现代码分享
2011/09/01 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
CI框架入门之MVC简单示例
2016/11/21 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
JS高级运动实例分析
2016/12/20 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
JS作用域深度解析
2016/12/29 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
python实现图像外边界跟踪操作
2020/07/13 Python
Canvas实现保存图片到本地的示例代码
2018/06/28 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
北承题目(C++)
2012/05/16 面试题
关于教师节的演讲稿
2014/09/04 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
详解Vue slot插槽
2021/11/20 Vue.js