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学习笔记之jQuery动画效果
Sep 09 Javascript
JS网页图片按比例自适应缩放实现方法
Jan 15 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
AngularJS 依赖注入详解和简单实例
Jul 28 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 Javascript
Angular 2父子组件之间共享服务通信的实现
Jul 04 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
在 Angular中 使用 Lodash 的方法
Feb 11 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
微信小程序开发之tabbar图标和颜色的实现
Oct 17 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 Javascript
小程序实现左滑删除的效果的实例代码
Oct 19 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
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
Python里隐藏的“禅”
2014/06/16 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
Python 调用Java实例详解
2017/06/02 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
Django后台管理系统的图文使用教学
2020/01/20 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
经济管理自荐书
2014/06/09 职场文书
学校政风行风整改方案
2014/10/25 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
观后感的写法
2015/06/19 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL