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将Table导出到Excel实现思路及代码
Mar 13 Javascript
javascript 函数及作用域总结介绍
Nov 12 Javascript
JavaScript 七大技巧(二)
Dec 13 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
May 23 Javascript
JS逻辑运算符短路操作实例分析
Jul 09 Javascript
原生JS实现的轮播图功能详解
Aug 06 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
Sep 26 Javascript
openlayers4实现点动态扩散
Aug 17 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执行zip与rar解压缩方法实现代码
2010/12/05 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
cookie的secure属性详解
2015/04/08 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
初步解析Python下的多进程编程
2015/04/28 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
python学生信息管理系统(完整版)
2020/04/05 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
python七夕浪漫表白源码
2019/04/05 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
计算机本科生自荐信
2013/10/15 职场文书
大学生学业生涯规划
2014/01/05 职场文书
求职信范文大全
2014/05/26 职场文书
四风问题个人对照检查材料
2014/09/26 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
文明旅游倡议书
2015/04/28 职场文书
生日祝酒词大全
2015/08/10 职场文书
利用Matlab绘制各类特殊图形的实例代码
2021/07/16 Python
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis