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 相关文章推荐
jquery.ui.progressbar 中文文档
Nov 26 Javascript
IE iframe的onload方法分析小结
Jan 07 Javascript
代码触发js事件(click、change)示例应用
Dec 13 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
jquery.mousewheel实现整屏翻屏效果
Aug 30 Javascript
Javascript for in的缺陷总结
Feb 03 Javascript
详解Angular2 关于*ngFor 嵌套循环
May 22 Javascript
创建简单的node服务器实例(分享)
Jun 23 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
快速解决element的autofocus失效问题
Sep 08 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
Oct 02 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
php二维数组排序详解
2013/11/06 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
用director.js实现前端路由使用实例
2017/01/27 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
vue中的scope使用详解
2017/10/29 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
网络方面基础面试题
2012/11/16 面试题
企业项目策划书
2014/01/11 职场文书
2014教师研修学习体会
2014/07/08 职场文书
欢迎家长标语
2014/10/08 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
Python中使用ipython的详细教程
2021/06/22 Python