基于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 相关文章推荐
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
理解Javascript_10_对象模型
Oct 16 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
js取float型小数点后两位数的方法
Jan 18 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
Apr 12 Javascript
jQuery实现垂直半透明手风琴特效代码分享
Aug 21 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
在IE8上JS实现combobox支持拼音检索功能
May 23 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
Aug 11 Javascript
vue awesome swiper异步加载数据出现的bug问题
Jul 03 Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 Javascript
微信小程序实现拼图小游戏
Oct 22 Javascript
深入浅出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
Window下PHP三种运行方式图文详解
2013/06/11 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
React 组件间的通信示例
2018/06/14 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
通过python爬虫赚钱的方法
2019/01/29 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
佳能法国商店:Canon法国
2019/02/14 全球购物
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
nohup的用法
2012/11/26 面试题
公司年终奖分配方案
2014/06/16 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
商铺消防安全责任书
2014/07/29 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python
php去除deprecated的实例方法
2021/11/17 PHP
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
python读取mat文件生成h5文件的实现
2022/07/15 Python