基于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 相关文章推荐
让mayfish支持mysqli数据库驱动的实现方法
May 22 Javascript
js中window.open()的所有参数详细解析
Jan 09 Javascript
浅析jQuery EasyUI中的tree使用指南
Dec 18 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
Aug 05 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
Oct 09 Javascript
详解vue 图片上传功能
Apr 30 Javascript
微信小程序 wxParse插件显示视频问题
Sep 27 Javascript
vscode中使用npm安装babel的方法
Aug 02 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
怎样去阅读一份php源代码
2009/08/21 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
详解YII关联查询
2016/01/10 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python元字符的用法实例解析
2018/01/17 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
优秀员工表扬信
2014/01/17 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
施工安全责任书范本
2014/07/24 职场文书
顶岗实习计划书
2015/01/16 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
python中super()函数的理解与基本使用
2021/08/30 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL