node.js基于fs模块对系统文件及目录进行读写操作的方法详解


Posted in Javascript onNovember 10, 2017

本文实例讲述了node.js基于fs模块对系统文件及目录进行读写操作的方法。分享给大家供大家参考,具体如下:

如果要用这个模块,首先需要引入,fs已经属于node.js自带的模块,所以直接引入即可

var fs = require('fs');

1.读取文件readFile方法使用

fs.readFile(filename,[option],callback) 方法读取文件。

参数说明:

filename String 文件名
option Object
  encoding String |null default=null
  flag String default='r'
callback Function

// 设置编码格式
fs.readFile('./test.txt', 'utf-8', function(err, data) {
  // 读取文件失败/错误
  if (err) {
    throw err;
  }
  // 读取文件成功
  console.log('utf-8: ', data.toString());
});

2.写入文件writeFile方法使用

使用fs.writeFile(filename,data,[options],callback)写入内容到文件。

参数说明:

filename String 文件名
data String|buffer
option Object
  encoding String |nulldefault='utf-8'
  mode Number default=438(aka 0666 in Octal)
  flag Stringdefault='w'
callback Function

var fs = require('fs'); // 引入fs模块
// 写入文件内容(如果文件不存在会创建一个文件)
// 写入时会先清空文件
fs.writeFile('./test2.txt', 'test test', function(err) {
  if (err) {
    throw err;
  }
  console.log('Saved.');
  // 写入成功后读取测试
  fs.readFile('./test2.txt', 'utf-8', function(err, data) {
    if (err) {
      throw err;
    }
    console.log(data);
  });
});

因为默认flag='w'是写,会清空文件,想要追加,可以传递一个flag参数,如下。

flag传值,r代表读取文件,w代表写文件,a代表追加。

var fs = require('fs'); // 引入fs模块
// 写入文件内容(如果文件不存在会创建一个文件)
// 传递了追加参数 { 'flag': 'a' }
fs.writeFile('./test2.txt', 'test test', { 'flag': 'a' }, function(err) {
  if (err) {
    throw err;
  }
  console.log('Saved.');
  // 写入成功后读取测试
  fs.readFile('./test2.txt', 'utf-8', function(err, data) {
    if (err) {
      throw err;
    }
    console.log(data);
  });
});

3.创建目录mkdir使用

使用fs.mkdir(path,[mode],callback)创建目录,path是需要创建的目录,[mode]是目录的权限(默认是0777),callback是回调函数。

var fs = require('fs'); // 引入fs模块
// 创建 newdir 目录
fs.mkdir('./newdir', function(err) {
  if (err) {
    throw err;
  }
  console.log('make dir success.');
});

4.读取目录readdir

var fs = require('fs'); // 引入fs模块
fs.readdir('./newdir', function(err, files) {
  if (err) {
    throw err;
  }
  // files是一个数组
  // 每个元素是此目录下的文件或文件夹的名称
  console.log(files);
});

5.删除文件unlink

var fs = require('fs'); // 引入fs模块
fs.unlink('./newfile.txt', function(err) {
  if (err) {
    console.log(err);
    return false;
  }
  console.log("success");
});

6.删除空文件夹rmdir

var fs = require('fs'); // 引入fs模块
fs.rmdir('./newdir', function(err) {
  if (err) {
    console.log(err);
    return false;
  }
  console.log("success");
});

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
JavaScript多线程的实现方法
May 08 Javascript
基于jquery的横向滚动条(滑动条)
Feb 24 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
JavaScript类属性的访问方式详解
Feb 11 Javascript
js的toUpperCase方法用法实例
Jan 27 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
Dec 22 Javascript
js实现下一页页码效果
Mar 07 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
原生JS实现天气预报
Jun 16 Javascript
原生javascript如何实现共享onload事件
Jul 03 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 #Javascript
javascript实现电脑和手机版样式切换
Nov 10 #Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 #jQuery
js定时器+简单的动画效果实例
Nov 10 #Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
Nov 10 #Javascript
angular之ng-template模板加载
Nov 09 #Javascript
深入理解Vue 单向数据流的原理
Nov 09 #Javascript
You might like
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
Python可跨平台实现获取按键的方法
2015/03/05 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
白酒市场营销方案
2014/02/25 职场文书
教师党员承诺书2015
2015/01/21 职场文书
辞职信标准格式
2015/02/27 职场文书