基于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 相关文章推荐
网页中返回顶部代码(多种方法)另附注释说明
Apr 24 Javascript
解读JavaScript中 For, While与递归的用法
May 07 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
Vue实现active点击切换方法
Mar 16 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
Mar 04 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
php+curl 发送图片处理代码分享
2015/07/09 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
jquery判断页面网址是否有效的两种方法
2016/12/11 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
简单实现python收发邮件功能
2018/01/05 Python
Python中pillow知识点学习
2018/04/30 Python
python 为什么说eval要慎用
2019/03/26 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python如何输出警告信息
2020/07/30 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
财务与信息服务专业推荐信
2013/11/28 职场文书
早读迟到检讨书
2014/01/24 职场文书
预备党员政审材料
2014/02/04 职场文书
运动会开幕式解说词
2014/02/05 职场文书
白莲教口号
2014/06/18 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书