Node.js学习之内置模块fs用法示例


Posted in Javascript onJanuary 22, 2020

本文实例讲述了Node.js学习之内置模块fs用法。分享给大家供大家参考,具体如下:

IDE为VSCode

.js内置的fs模块就是文件系统模块,负责读写文件

'use strict'
var fs = require('fs');
//异步读取文件(文本)编码格式指定为utf-8
fs.readFile('sample.txt','utf-8',function(error,data){
  if(error){
    console.log('error');
  }else{
    console.log(data);
  }
});
//异步读取二进制文件返回的data为buffer
fs.readFile('sample.png',function(err,data){
  if(err){
    console.log('error')
  }else{
    console.log(data.length+'bytes');
  }
});
//同步读取(可以加try),异步不能try,并非立即执行不能捕捉
try {
  var data = fs.readFileSync('sample.png');
  console.log(data.length+'bytes');
} catch (error) {
}
//再来看看写入文件往一个文本中写,该文本的格式要是utf-8,不写编码格式默认也是utf-8
fs.writeFile('sample.txt','这是我要写入的文本','utf-8',function(err,data){
  if(err){
    console.log('error');
  }else{
    console.log('success');
  }
})
//同步无回调,略过
//查看文件的信息使用stat()比如,也可以使用同步,不一一演示
fs.stat('sample.txt',function(err,stat){
  if(err){
    console.log('error')
  }else{
    //创建时间
    console.log(stat.birthtime);
    //修改时间
    console.log(stat.mtime);
    console.log(stat.size);
    console.log(stat.isFile);
  }
})
'use strict'
var fs = require('fs');
//创建一个文件读取流,返回一个ReadStream对象,可以对对象进行事件监听,
//data事件表示流的数据已经可以读取了,一般会执行多次,end事件表示这个流已经到末尾了,没有数据可以读取了,
//error事件表示出错了,chunk是文本流的一部分数据
var rs = fs.createReadStream('sample.txt','utf-8');
rs.on('data',function(chunk){
  console.log('data:')
  console.log(chunk);
});
rs.on('end',function(){
  console.log('end');
});
rs.on('error',function(error){
  console.log('error');
});
//写入流(原来文本文件有内容,会覆盖掉)
var is = fs.createWriteStream('copy.txt','utf-8');
is.write('我写点东西');
is.write('我再写点东西');
is.end;
//我们用pipe()把一个文件流和另一个文件流串起来,这样源文件的所有数据就自动写入到目标文件里了,所以,这实际上是一个复制文件的程序:
var rs = fs.createReadStream('sample.txt','utf-8');
var is = fs.createWriteStream('copy.txt','utf-8');
rs.pipe(is);
//默认情况下,当Readable流的数据读取完毕,end事件触发后,将自动关闭Writable流。如果我们不希望自动关闭Writable流,需要传入参数如下
// rs.pipe(is,{end:false});

希望本文所述对大家node.js程序设计有所帮助。

Javascript 相关文章推荐
前台js调用后台方法示例
Dec 02 Javascript
jQuery知识点整理
Jan 30 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
Apr 06 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
Aug 04 Javascript
bootstrap table配置参数例子
Jan 05 Javascript
react.js 获取真实的DOM节点实例(必看)
Apr 17 Javascript
JavaScript箭头(arrow)函数详解
Jun 04 Javascript
使用JS判断移动端手机横竖屏状态
Jul 30 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
微信小程序点击保存图片到本机功能
Dec 13 Javascript
js实现简单点赞操作
Mar 17 Javascript
微信小程序实现日历小功能
Nov 18 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
Jan 22 #Javascript
ES6学习笔记之let与const用法实例分析
Jan 22 #Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 #Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 #Javascript
JavaScript设计模型Iterator实例解析
Jan 22 #Javascript
Vue开发环境跨域访问问题
Jan 22 #Javascript
vue中英文切换实例代码
Jan 21 #Javascript
You might like
php实现的漂亮分页方法
2014/04/17 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
详解php中反射的应用
2016/03/15 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
vue.js实现含搜索的多种复选框(附源码)
2017/03/23 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
Python的装饰器用法学习笔记
2016/06/24 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
查看django版本的方法分享
2018/05/14 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
CSS3实现背景透明文字不透明的示例代码
2018/06/25 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
医院检讨书范文
2014/02/01 职场文书
小学生检讨书大全
2014/02/06 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL