基于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 相关文章推荐
做网页的一些技巧
Feb 01 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
介绍一个简单的JavaScript类框架
Jun 24 Javascript
简单实现异步编程promise模式
Jul 31 Javascript
BootStrap制作导航条实例代码
May 06 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
Jun 20 Javascript
Bootstrap表格制作代码
Mar 17 Javascript
微信小程序wx.request实现后台数据交互功能分析
Nov 25 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
Sep 18 Javascript
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 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
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
python多线程用法实例详解
2015/01/15 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
django 常用orm操作详解
2017/09/13 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python实现人像动漫化的示例代码
2020/05/17 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
如何唤起类中的一个方法
2013/11/29 面试题
植树节标语
2014/06/27 职场文书
表扬信格式模板
2015/05/05 职场文书
升学宴家长致辞
2015/07/27 职场文书
初三英语教学反思
2016/02/15 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS