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 相关文章推荐
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 Javascript
js 实现打印网页中定义的部分内容的代码
Apr 01 Javascript
javascript hasFocus使用实例
Jun 29 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
JavaScript中奇葩的假值示例应用
Mar 11 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
Vue2.0 UI框架ElementUI使用方法详解
Apr 14 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
vue中可编辑树状表格的实现代码
Oct 31 Javascript
帮你提高开发效率的JavaScript20个技巧
Jun 18 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
黑夜路人出的几道php笔试题
2009/08/04 PHP
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
JavaScript运行原理分析
2018/02/09 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Windows下安装Scrapy
2018/10/17 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
opencv3/C++ 平面对象识别&透视变换方式
2019/12/11 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
档案工作个人总结
2015/03/03 职场文书
会计工作态度自我评价
2015/03/06 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL