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 相关文章推荐
javascript 函数调用的对象和方法
Jul 01 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
js创建对象的方式总结
Jan 10 Javascript
javascript笔记之匿名函数和闭包
Feb 06 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
微信禁止下拉查看URL的处理方法
Sep 28 Javascript
微信小程序实现折叠展开效果
Jul 19 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
Oct 08 Javascript
create-react-app中添加less支持的实现
Nov 15 Javascript
vue 导出文件,携带请求头token操作
Sep 10 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中文字符截取防乱码
2008/03/28 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
javascript getElementsByClassName实现代码
2010/10/11 Javascript
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
python与php实现分割文件代码
2017/03/06 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python按比例随机切分数据的实现
2019/07/11 Python
python实现键盘输入的实操方法
2019/07/16 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
Python while循环使用else语句代码实例
2020/02/07 Python
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
C有"按引用传递"吗
2016/09/06 面试题
高中毕业自我鉴定
2013/12/16 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
《画家乡》教学反思
2014/04/22 职场文书
说明书格式及范文
2014/05/07 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
就业协议书
2014/09/12 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android