基于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实现无刷新DropDownList联动实现代码
Mar 08 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
使用javascript实现json数据以csv格式下载
Jan 09 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
Aug 15 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
Nov 05 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
layui.js实现的表单验证功能示例
Nov 15 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
修改NPM全局模式的默认安装路径的方法
Dec 15 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 cron中的批处理
2008/09/16 PHP
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
jQuery select控制插件
2009/08/17 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python写的服务监控程序实例
2015/01/31 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Python列表(List)知识点总结
2019/02/18 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
电力培训心得体会
2014/09/02 职场文书
小学安全教育主题班会
2015/08/12 职场文书
python实现简单聊天功能
2021/07/07 Python
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
Python中request的基本使用解决乱码问题
2022/04/12 Python