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实现焦点滚动图效果 具体方法
Jun 24 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
推荐9款炫酷的基于jquery的页面特效
Dec 07 Javascript
jQuery对指定元素中指定字符串进行替换的方法
Mar 17 Javascript
简单谈谈Javascript中类型的判断
Oct 19 Javascript
JavaScript每天必学之基础知识
Sep 17 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
Jul 11 Javascript
webpack打包react项目的实现方法
Jun 21 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
原生JS实现留言板功能
Feb 08 Javascript
JS继承最简单的理解方式
Mar 31 Javascript
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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 Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
2013/01/27 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
Node.js的特点详解
2017/02/03 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
浅谈python中的变量默认是什么类型
2016/09/11 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python把一个字符串切开的实例方法
2020/09/27 Python
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
工厂厂长的职责
2013/12/12 职场文书
志愿者服务感言
2014/02/27 职场文书
法人授权委托书
2014/04/03 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
养成教育工作总结
2015/08/13 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python