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刷新框架子页面的七种方法代码
Nov 20 Javascript
Jquery Select操作方法集合脚本之家特别版
May 17 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
Feb 16 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 Javascript
js改变Iframe中Src的方法
May 05 Javascript
JavaScript中length属性的使用方法
Jun 05 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
JavaScript html5 canvas绘制时钟效果
Mar 01 Javascript
json与jsonp知识小结(推荐)
Aug 16 Javascript
layui使用templet格式化表格数据的方法
Sep 16 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
Apr 28 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连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
php 解压rar文件及zip文件的方法
2014/05/05 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门
2020/09/13 PHP
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
js打造数组转json函数
2015/01/14 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
什么时候用assert
2015/05/08 面试题
学校感恩节活动策划方案
2014/10/06 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
Python 正则模块详情
2021/11/02 Python