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 bind事件使用详解
May 05 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
在javascript中实现函数数组的方法
Dec 25 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
Sep 03 Javascript
javascript学习笔记(二)数组和对象部分
Sep 30 Javascript
14个有用的Jquery技巧分享
Jan 08 Javascript
JavaScript 基本概念
Jan 20 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
Mar 10 Javascript
原生js实现图片放大缩小计时器效果
Jan 20 Javascript
vue2.0结合Element实现select动态控制input禁用实例
May 12 Javascript
关于Bootstrap按钮组件消除黄框的方法
May 19 Javascript
vue elementUI批量上传文件
Apr 26 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类
2006/11/27 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
2013/07/05 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
JS模拟多线程
2007/02/07 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
基于python实现从尾到头打印链表
2019/11/02 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
门卫岗位安全职责
2013/12/13 职场文书
农场厂长岗位职责
2013/12/28 职场文书
就业导师推荐信范文
2015/03/27 职场文书
企业培训简报范文
2015/07/20 职场文书
新学期感想
2015/08/10 职场文书
商务宴会祝酒词
2015/08/11 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers