基于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解决url传值出现中文乱码的另类办法
Apr 08 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
Jun 10 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
Jun 08 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
vue实现商城秒杀倒计时功能
Dec 12 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 Javascript
Element Input输入框的使用方法
Jul 26 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 程序授权验证开发思路
2009/07/09 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
js数组的操作详解
2013/03/27 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
2018/08/07 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
2020/05/29 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
给老婆的搞笑检讨书
2014/01/12 职场文书
双语教学实施方案
2014/03/23 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
给老师的感谢信
2015/01/20 职场文书
四年级数学上册教学计划
2015/01/20 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
道歉信怎么写
2015/05/12 职场文书
环保守法证明
2015/06/24 职场文书
2016新年年会主持词
2015/07/06 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书