基于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 相关文章推荐
关于 文本框默认值 的操作js代码
Jan 12 Javascript
文本框input聚焦失焦样式实现代码
Oct 12 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
Jun 28 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
Jun 12 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
Sep 21 Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 Javascript
Dropify.js图片宽高自适应的方法
Nov 27 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
Jul 19 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实现通过CURL上传文件功能示例
2018/05/30 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
Visual Studio中js调试的方法图解
2014/06/30 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
electron中使用bootstrap的示例代码
2018/11/06 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
Django的session中对于用户验证的支持
2015/07/23 Python
全面分析Python的优点和缺点
2018/02/07 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Python面向对象之Web静态服务器
2019/09/03 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
python实现磁盘日志清理的示例
2020/11/05 Python
python编程的核心知识点总结
2021/02/08 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
给老婆的婚前保证书
2014/02/01 职场文书
学校志愿者活动总结
2014/06/27 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
模范教师材料大全
2014/12/16 职场文书
平安家庭事迹材料
2014/12/20 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
小学数学教师研修感悟
2015/11/18 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书