基于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 相关文章推荐
用一段js程序来实现动画功能
Mar 06 Javascript
jQuery Dialog 弹出层对话框插件
Aug 09 Javascript
Javascript Throttle & Debounce应用介绍
Mar 19 Javascript
json属性名为什么要双引号(个人猜测)
Jul 31 Javascript
喜大普奔!jQuery发布 3.0 最终版
Jun 12 Javascript
form表单转Json提交的方法(推荐)
Sep 23 Javascript
Javascript之面向对象--封装
Dec 02 Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 Javascript
mpvue全局引入sass文件的方法步骤
Mar 06 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Apr 20 Javascript
webpack的 rquire.context用法实现工程自动化的方法
Feb 07 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通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
Mongoose实现虚拟字段查询的方法详解
2017/08/15 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
Python面向对象之继承代码详解
2018/01/29 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
python 求定积分和不定积分示例
2019/11/20 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
高二地理教学反思
2014/01/24 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
英文请假条
2014/04/11 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
社区国庆节活动总结
2015/03/23 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
海洋天堂观后感
2015/06/05 职场文书
教师节随笔
2015/08/15 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python