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 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
再谈javascript面向对象编程
Mar 18 Javascript
javascript删除option选项的多种方法总结
Nov 22 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
Dec 25 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
Oct 08 Javascript
vue2中引用及使用 better-scroll的方法详解
Nov 15 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
javascript实现获取中文汉字拼音首字母
May 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
PHP实现下载断点续传的方法
2014/11/12 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
JS获取整个页面文档的实现代码
2011/12/15 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
EasyUI创建人员树的实例代码
2017/09/15 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
import的本质解析
2017/10/30 Python
详解Python字典小结
2018/10/20 Python
python判断输入日期为第几天的实例
2018/11/13 Python
python的继承知识点总结
2018/12/10 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
python实现操作文件(文件夹)
2019/10/31 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
Django 再谈一谈json序列化
2020/03/16 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
同学聚会欢迎辞
2014/01/14 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
中药学专业求职信
2014/05/31 职场文书
催款函范本大全
2015/06/24 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
python异步的ASGI与Fast Api实现
2021/07/16 Python