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 相关文章推荐
Ext对基本类型的扩展 ext,extjs,format
Dec 25 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
Mar 04 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 Javascript
jQuery弹出层插件Lightbox_me使用指南
Apr 21 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
简单的jQuery入门指引
Jul 28 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
Three.js实现3D机房效果
Dec 30 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
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 前一天或后一天的日期
2008/06/28 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
python批量修改文件后缀示例代码分享
2013/12/24 Python
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
python使用配置文件过程详解
2019/12/28 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
个人贷款承诺书
2014/03/28 职场文书
法人授权委托书范本
2014/04/04 职场文书
事假请假条范文
2014/04/11 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
公司承诺函范文
2015/01/21 职场文书
银行催款通知书
2015/04/17 职场文书
golang中的空接口使用详解
2021/03/30 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python