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 相关文章推荐
图片自动缩小 点击放大
Jul 07 Javascript
JS支持带x身份证号码验证函数
Aug 10 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 Javascript
基于JS实现PHP的sprintf函数实例
Nov 14 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
Oct 17 Javascript
5种JavaScript脚本加载的方式
Jan 16 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
Jun 01 Javascript
详解原生js实现offset方法
Jun 15 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
Oct 09 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
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
php中fsockopen用法实例
2015/01/05 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
jQuery拖拽div实现思路
2014/02/19 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
Vue header组件开发详解
2018/01/26 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
如何设置Java的运行环境
2013/04/05 面试题
运动会广播稿300字
2014/01/10 职场文书
高中军训感言400字
2014/02/24 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
2015年计划生育责任书
2015/05/08 职场文书