前言

  fs是filesystem的缩写,该模块提供本地文件的读写能力,基本上是POSIX文件操作命令的简单包装。但是,这个模块几乎对所有操作提供异步和同步两种操作方式,供开发者选择。

一、文件读取

文件读取又分为同步读取(readFileSync())和异步读取(readFile())

//1、文件同步读取
const bufferStr = fs.readFileSync('./file/test.txt'}); console.log(bufferStr);
// 因为没有声明encoding 所以返回的是二进制数据
//<Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64 21> const str = fs.readFileSync('./file/test.txt',{
encoding:'utf-8'
}); console.log(str);
//Hello world!

//错误处理
try{
var errStr = fs.readFileSync('test.txt');
}catch(err){
console.log(errStr);
} //因为文件不存在,所以 打印出 undefined //2、文件异步读取
fs.readFile('./file/test.txt',{encoding:'utf-8'}, (err,data) =>{
if(err) throw err;
console.log('2.1读取数据成功,数据内容为:'+ data);
});

  

二、文件写入

文件写入包括:fs.writeFile(异步)、fs.writeFileSync(同步)

格式:fs.writeFile(filename, data, [options], callback)

[options]
@param {Object} [options]
@param {String} options.encoding 编码,默认是utf8
@param {Number} options.mode=438 模式
@param {String} options.flag=w 写文件的模式
@param {Function} callback 回调方法

const fileName = 'wirteFile_01.txt';

fs.writeFile(fileName, 'Hello World !', (err) => {
if(err) throw err;
console.log(fileName + '不存在,被创建了!');
}); //往存在的文件内写内容
fs.writeFile(fileName, 'no pain no gain', (err) => {
if(err) throw err;
console.log(fileName + '文件被修改了!');
}); //往文件内追加内容
fs.writeFile(fileName, 'stay hungry stay foolish',{flag : 'a'}, (err) => {
if(err) throw err;
console.log(fileName + '文件被修改了,内容追加!');
});

  

fs.writeFileSync(同步)

与异步差不多,就是没有回调。

三.文件删除

//异步
fs.unlink('./file/test.txt', (err) => {
if (err) throw err;
console.log('成功删除file中的test.txt');
}); //同步
fs.unlinkSync('./file/test.txt', (err) => {
if (err) throw err;
console.log('成功删除file中的test.txt');
});

  

四、文件的监听事件

//文件的事件监听
fs.watch('./file', {encoding:'utf-8'}, (eventType, filename) =>{
if(filename){
console.log('文件名:' + filename + '事件类型:' + eventType);
}
}); //文件名:test3.txt事件类型:rename
//文件名:hhh.txt事件类型:rename
//文件名:hhh.txt事件类型:change

  

参考:官方文档

node之fs模块的更多相关文章

  1. 【node】fs模块,文件和目录的操作

    检查文件是否存在,查询文件信息 fs.stat() fs.stat('./server.js', function (err, stat) { if (stat && stat.isF ...

  2. node的fs模块使用————node

    node的fs模块使用----node fs模块是调用文件的模块. var fs=require('fs'); //引用模块. //查看文件信息 fs.stat('index.txt',functio ...

  3. [Nodejs] node的fs模块

    fs 模块 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作 API. Node 导入文件系统模块(fs).Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如 ...

  4. 从官网学习Node.js FS模块方法速查

    最新文档请查看仓库 https://github.com/wangduandu... 1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参 ...

  5. Node.js FS模块方法速查

    1. File System 所有文件操作提供同步和异步的两种方式,本笔记只记录异步的API 异步方式其最后一个参数是回调函数.回调函数的第一个参数往往是错误对象,如果没有发生参数,那么第一个参数可能 ...

  6. Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流

    /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...

  7. node的fs模块

    node的file system模块提供的api有同步和异步两种模式(大多数情况下都是用的异步方法,毕竟异步是node的特色,至于提供同步方法,可能应用程序复杂的时候有些场景使用同步会比较合适).异步 ...

  8. node中fs模块 - fs.open() fs.read() fs.write() fs.close()

    var fs = require('fs') fs.open('./a.txt', 'a+', function(err, fd) { // 打开文件后 创建缓冲区放置数据 ), // 读取多少字节 ...

  9. Node 的fs模块

    这个fs.readdir路径要加上__dirname  找到绝对路径  否则会报错 { Error: ENOENT: no such file or directory, scandir '/User ...

随机推荐

  1. 创建以mybatis为基础的web项目(1)

    1. 新建项目,生成web.xml(生成的目录结构如下所示) 目录结构如下图 2. 导入mybatis包,数据库驱动包,log4j包(复制到webroot目录下的lib文件夹下面,并添加到构建路径) ...

  2. spring-oauth-server实践:access_token的有效期分析

    1.access_token有效期检查 用expiration和new Date()比较!!!!!! 分析目标-->expiration什么时候设置,设置规则如何配置!!!!!!! 2.acce ...

  3. 新概念英语(1-23)Which glasses?

    Which glasses does the man want? A:Give me some glasses please, Jane? B:Which glasses? These glasses ...

  4. iOS HTML图片本地预览

    引言 相信用过苹果手机的童鞋,会发现很多新闻类的应用,都可以实现HTML图片本地预览,那么这是如何实现的呢?本文将深入阐述其中的原理. 关于此功能,我还实现了一个DEMO,大家可以点击此访问更详细内容 ...

  5. intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

    需求:第三方提供了http api接口,我们需要将其数据全部取回来,存放到本地Mysql数据库. 开发工具是intelj idea,准备基于maven创建聚合项目,util作为工具包,单独作为一个工程 ...

  6. Python 爬虫基础知识

    requests Python标准库中提供了:urllib.urllib2.httplib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作, ...

  7. POJ-3268 Silver Cow Party---正向+反向Dijkstra

    题目链接: https://vjudge.net/problem/POJ-3268 题目大意: 有编号为1-N的牛,它们之间存在一些单向的路径.给定一头牛的编号X,其他牛要去拜访它并且拜访完之后要返回 ...

  8. jquery中的attr()与prop()的区别

    根据官方的建议:具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()

  9. 浅析Java的Frok/Join框架

    一丶Fork/Join框架产生背景: 随着并发需求的不断提高和硬件的不断发展,程序并行执行仿佛就提上日程上来了,伟大的毛主席就说过:"人多力量大",所以如果一件事可以分配给多个人同 ...

  10. Spring-cloud(二)注册服务提供者搭建

    上文已经写了如何去搭建注册中心,仅有注册中心是远远不够的,所以我们需要注册到注册中心并提供服务的节点,这里称为注册服务提供者 前提 阅读上文,并成功搭建注册中心,环境无需改变 项目搭建 这里我们需要新 ...