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函数
Apr 09 Javascript
EXT中xtype的含义分析
Jan 07 Javascript
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
Nov 22 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
Mar 04 Javascript
莱鸟介绍window.print()方法
Jan 06 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 Javascript
vue分页插件的使用方法
Dec 25 Javascript
Vue 实现拨打电话操作
Nov 16 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的特殊设置
2006/10/09 PHP
优化使用mysql存储session的php代码
2008/01/10 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
Angularjs 基础入门
2014/12/26 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
PyTorch基本数据类型(一)
2019/05/22 Python
python中如何写类
2020/06/29 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
团员学习总结的自我评价范文
2013/10/14 职场文书
化工机械应届生求职信
2013/11/04 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
运动会加油稿20字
2014/11/15 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
python3操作redis实现List列表实例
2021/08/04 Python