基于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实现IE下按backspace相当于返回操作
Mar 18 Javascript
一个很有趣3D球状标签云兼容IE8
Aug 22 Javascript
JavaScript中的console.log()函数详细介绍
Dec 29 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
Nov 24 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
Vue2.0实现购物车功能
Jun 05 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
Sep 18 Javascript
详细分析JS函数去抖和节流
Dec 05 Javascript
js实现点击生成随机div
Jan 16 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 Vue.js
深入浅出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和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
js实现文字截断功能
2016/09/14 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
python实现俄罗斯方块
2018/06/26 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
值得收藏的10道python 面试题
2019/04/15 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
艺术爱好者的自我评价分享
2013/10/08 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
学生保证书
2015/01/16 职场文书
电影建国大业观后感
2015/06/01 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python
总结Pyinstaller打包的高级用法
2021/06/28 Python
Golang日志包的使用
2022/04/20 Golang
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL