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 arguments对象应用介绍
Nov 28 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
JavaScript中String.prototype用法实例
May 20 Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
Angularjs中使用轮播图指令swiper
May 30 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
axios中cookie跨域及相关配置示例详解
Dec 20 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
Feb 09 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
Jul 02 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
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
php获取字段名示例分享
2014/03/03 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php中session与cookie的比较
2015/01/27 PHP
php截取中文字符串函数实例
2015/02/23 PHP
PHP处理Ajax请求与Ajax跨域问题
2017/02/13 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
python开发之thread实现布朗运动的方法
2015/11/11 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
对python实现二维函数高次拟合的示例详解
2018/12/29 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
python里glob模块知识点总结
2021/01/05 Python
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
小区门卫管理制度
2014/01/29 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
运动员口号
2014/06/09 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
使用nginx配置访问wgcloud的方法
2021/06/26 Servers