基于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 相关文章推荐
读jQuery之六 缓存数据功能介绍
Jun 21 Javascript
Javascript页面添加到收藏夹的简单方法
Aug 07 Javascript
JavaScript数字和字符串转换示例
Mar 26 Javascript
浅谈jQuery中ajaxPrefilter的应用
Aug 01 Javascript
AngularJS教程之环境设置
Aug 16 Javascript
getElementById().innerHTML与getElementById().value的区别
Oct 27 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
Nov 28 Javascript
详解webpack进阶之插件篇
Jul 06 Javascript
微信小程序表单验证功能完整实例
Dec 01 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
JS实现移动端点击按钮复制文本内容
Jul 28 Javascript
Nuxt的路由动画效果案例
Nov 06 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中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
php二维码生成
2015/10/19 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
input 输入框内的输入事件详细分析
2010/03/17 Javascript
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
文件编码导致jquery失效的解决方法
2013/06/26 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
用JavaScript实现对话框的教程
2015/06/04 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
spirngmvc js传递复杂json参数到controller的实例
2018/03/29 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
详解Python中expandtabs()方法的使用
2015/05/18 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
django框架创建应用操作示例
2019/09/26 Python
python创建子类的方法分析
2019/11/28 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
团日活动策划书
2014/02/01 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
新春联欢会主持词
2014/03/24 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
创业计划书之孕婴生活馆
2019/11/11 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis