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 获取当前时间戳的代码
Aug 05 Javascript
Array的push与unshift方法性能比较分析
Mar 05 Javascript
完美解决IE低版本不支持call与apply的问题
Dec 05 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
Oct 29 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
JS字符串按逗号和回车分隔的方法
Apr 25 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
Oct 20 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
微信小程序提取公用函数到util.js及使用方法示例
Jan 10 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
Mar 04 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
使PHP自定义函数返回多个值
2006/11/26 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
Javascript模板技术
2007/04/27 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
玩转方法:call和apply
2014/05/08 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
javascript的this关键字详解
2019/05/20 Javascript
Vue.js如何使用Socket.IO的示例代码
2019/09/05 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
2020/08/19 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
启动Atom并运行python文件的步骤
2018/11/09 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
通过实例解析Python return运行原理
2020/03/04 Python
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
党的群众教育实践活动实施方案
2014/06/12 职场文书
迎国庆演讲稿
2014/09/05 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL