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 相关文章推荐
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
Jul 18 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
May 18 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
May 08 Javascript
JQuery实现表格中相同单元格合并示例代码
Jun 26 Javascript
js加入收藏夹代码(兼容ie/ff/op)
May 16 Javascript
Iframe实现跨浏览器自适应高度解决方法
Sep 02 Javascript
jQuery中wrapInner()方法用法实例
Jan 16 Javascript
用户代理字符串userAgent可实现的四个识别
Sep 20 Javascript
javascript编程异常处理实例小结
Nov 30 Javascript
canvas实现弧形可拖动进度条效果
May 11 Javascript
详解vue-router传参的两种方式
Sep 10 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 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
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
Python计算一个文件里字数的方法
2015/06/15 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
python实现大转盘抽奖效果
2019/01/22 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
python打印异常信息的两种实现方式
2019/12/24 Python
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
什么是Assembly(程序集)
2014/09/14 面试题
满月酒主持词
2014/03/27 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
学习党章的体会
2014/11/07 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript