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 相关文章推荐
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
ie8本地图片上传预览示例代码
Jan 12 Javascript
js获取当前时间显示在页面上并每秒刷新
Dec 24 Javascript
javascript实现全角与半角字符的转换
Jan 07 Javascript
原生javascript实现图片弹窗交互效果
Jan 12 Javascript
JavaScript使ifram跨域相互访问及与PHP通信的实例
Mar 03 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 Javascript
angular+bootstrap的双向数据绑定实例
Mar 03 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
Vue中的Vux配置指南
Dec 08 Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 jQuery
微信小程序实现的日期午别医生排班表功能示例
Jan 09 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 Rename 更改文件、文件夹名称
2011/05/24 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
jQuery的框架介绍
2016/05/11 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
建筑人员岗位职责
2013/12/25 职场文书
心得体会怎么写
2013/12/30 职场文书
工作检讨书范文
2015/01/23 职场文书
主婚人致辞精选
2015/07/28 职场文书
毕业酒会致辞
2015/07/29 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python