基于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 相关文章推荐
Prototype使用指南之selector.js说明
Oct 26 Javascript
jquery实现邮箱自动补全功能示例分享
Feb 17 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
Dec 16 Javascript
jQuery中focus事件用法实例
Dec 26 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
js+canvas绘制矩形的方法
Jan 28 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
Jan 13 Javascript
详解webpack异步加载业务模块
Jun 23 Javascript
vue使用axios实现文件上传进度的实时更新详解
Dec 20 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
微信小程序 WXML节点信息查询详解
Jul 29 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
js使用递归解析xml
2014/12/12 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
JavaScript实现翻页功能(附效果图)
2017/02/16 Javascript
js模拟微博发布消息
2017/02/23 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
vue2 全局变量的设置方法
2018/03/09 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
深入解析Python中的上下文管理器
2016/06/28 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python之生成多层json结构的实现
2020/02/27 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
python实现KNN近邻算法
2020/12/30 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
python实战之90行代码写个猜数字游戏
2021/04/22 Python
MySQL的join buffer原理
2021/04/29 MySQL
浅谈redis整数集为什么不能降级
2021/07/25 Redis