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 相关文章推荐
jquery中attr和prop的区别分析
Mar 16 Javascript
javascript+css3 实现动态按钮菜单特效
Feb 06 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
详解jQuery停止动画——stop()方法的使用
Dec 14 Javascript
jQuery基于正则表达式的表单验证功能示例
Jan 21 Javascript
JS中静态页面实现微信分享功能
Feb 06 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 Javascript
对angularJs中ng-style动态改变样式的实例讲解
Sep 30 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 Javascript
Node.js API详解之 repl模块用法实例分析
May 25 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
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
CI框架Session.php源码分析
2014/11/03 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
angular.element方法汇总
2015/01/07 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
centos系统升级python 2.7.3
2014/07/03 Python
Python简单实现enum功能的方法
2016/04/25 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
python实现图像拼接功能
2020/03/23 Python
python连接mysql有哪些方法
2020/06/24 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
IBatis持久层技术
2016/07/18 面试题
什么是servlet
2012/05/08 面试题
公司致全体员工的感谢信
2019/06/24 职场文书
python基础之模块的导入
2021/10/24 Python