基于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 相关文章推荐
ext实现完整的登录代码
Aug 08 Javascript
JQuery 学习笔记 选择器之一
Jul 23 Javascript
JS判断不能为空实例代码
Nov 26 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
Dec 11 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
Jun 08 Javascript
React Router基础使用
Jan 17 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 Javascript
详解Vue 方法与事件处理器
Jun 20 Javascript
微信小程序获取用户openid的实现
Dec 24 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
May 29 jQuery
vue项目中openlayers绘制行政区划
Dec 24 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
基于jQuery实现音乐播放试听列表
2016/04/14 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
pandas 数据结构之Series的使用方法
2019/06/21 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
Tory Burch英国官方网站:美国时尚生活品牌
2017/12/06 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
硕士生工作推荐信
2014/03/07 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
美术教师个人总结
2015/02/06 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL