基于node.js的fs核心模块读写文件操作(实例讲解)


Posted in Javascript onSeptember 10, 2017

node.js 里fs模块

常用的功能

实现文件的读写 目录的操作

- 同步和异步共存 ,有异步不用同步

- fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFile方法

- 文件大分流读取,stream

- 引入fs模块

- let fs=require('fs')

同步读取文件

-fs.readFileSync('路径',utf8);

let result=fs.readFileSync('./1.txt','utf8');

异步读取文件,用参数err捕获错误

- fs.readFile('路径','utf8',function(){})

fs.readFile('./name.txt','utf8',function(err,data){
if(err){
console.log(err)
}else{
console.log(data)
}
})

同步写入文件

- fs.writeFileSync("路径",写入的数据)

fs.writeFileSync("./1.txt",JSON.stringify({name:1}))

异步写入文件

- fs.writeFile('路径',写入的数据,callback)

fs.writeFile('./1.txt','aaaaa',function (err) {
if(err){
console.log(err);
}
})

读写文件写一个拷贝实例

let fs=require("fs");
//同步拷贝
function copySync(source,target){
//同步读取
let result=fs.readFileSync(source,'utf8');
//同步写入
fs.writeFileSync(target,result);
}
copySync("./age.txt",'./1.txt');

//异步拷贝

function copy(sourse,target,callback){
//异步读取
fs.readFile(sourse,'utf8',function(err,data){
if(err){
return callback(err)
}else{
//异步写入
fs.writeFile(target,data,callback)
}
});
};
copy('./name.txt','./ss.txt',function(err){
if(err) return console.log(err);
console.log('拷贝成功')
})

判断文件存不存在

- fs.existsSync('文件的路径')

stat方法

fs.stat('文件路径',function (err,stat) {

stat.isDirectory 看是不是文件夹
stat.isFile 看是不是文件

})

删除文件夹

- fs.rmdir('文件夹路径',function(){})

删除文件

- fs.unlink('文件路径',function(){})

//判断文件存不存在

if(fs.existsSync('./b')){
fs.stat('./b',function (err,stat) {
//stat中的time是用来做服务器缓存
//stat.isDirectory看是不是文件夹 stat.isFile看是不是文件
if(stat.isDirectory()){
//删除文件夹
fs.rmdir('./b',function(){})
}else{
//删除文件
fs.unlink('./b',function(){});
}
})
}

利用递归写一个文件夹依次创建

function md(url) {
  let paths=url.split('/'); //将a/b/c拆分成数组['a','b','c']
  let index=0;
  function make(path){
    if(index===paths.length+1){ // 如果到终点,停止递归
      return false;
    }
    if(!fs.existsSync(path)){ //不存在
      //创建文件夹
      fs.mkdir(path,function () {
        make(paths.slice(0,++index).join('/'))
      })
    }else{ //存在
      make(paths.slice(0,++index).join('/'))
    }
  }
  make(paths[index++]) //先取出第一个
}
md('a/b/c/d');

以上这篇基于node.js的fs核心模块读写文件操作(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
Apr 14 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
微信小程序实现无限滚动列表
May 29 Javascript
Echart折线图手柄触发事件示例详解
Dec 16 Javascript
JavaScript中构造函数与原型链之间的关系详解
Feb 25 Javascript
学习node.js 断言的使用详解
Mar 18 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
Jul 18 Javascript
vue使用showdown并实现代码区域高亮的示例代码
Oct 17 Javascript
在Vue中实现随hash改变响应菜单高亮
Mar 09 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 #Javascript
基于AngularJS的简单使用详解
Sep 10 #Javascript
JS获取字符对应的ASCII码实例
Sep 10 #Javascript
Angular4学习笔记之根模块与Ng模块
Sep 09 #Javascript
关于vue-router的beforeEach无限循环的问题解决
Sep 09 #Javascript
浅谈Express异步进化史
Sep 09 #Javascript
vue组件学习教程
Sep 09 #Javascript
You might like
php的计数器程序
2006/10/09 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
php常用正则函数实例小结
2016/12/29 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
JS实现在状态栏显示打字效果完整实例
2015/11/02 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
英智兴达软件测试笔试题
2016/10/12 面试题
土木工程应届生求职信
2013/10/31 职场文书
大学生军训感想
2014/02/16 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
空气环保标语
2014/06/12 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
中学教师教学工作总结
2015/08/13 职场文书
校园之声广播稿
2015/08/18 职场文书
《植树问题》教学反思
2016/03/03 职场文书