fs模块是文件操作的封装,它提供了文件的读取,写入,更名,删除,遍历目录,链接等文件系统操作
与其他模块不同的是,fs模块中所有的操作都提供了异步的和同步的两个版本,
例如读取文件内容的函数有①异步的fs.readFile()和②同步的fs.readFileSync()
具体详解:
①异步fs.readFile(filename,[encoding],[callback(err,data)])-----读取文件的函数
必选参数 filename,表示要读取的文件名
encoding可选参数,表示文件的字符编码
callback 是回调函数,用于接收文件的内容
回调函数提供两个参数err和data,err表示有没有错误发生,data是文件内容。
如果指定了encoding,data是一个解析后的字符串,否则data将会是以Buffer形式表示的二进制数据
也就是说,不指定编码方式就默认使用二进制的方式进行读取数据
②同步fs.readFileSync(filename, [encoding])-----读取文件的函数
参数和fs.readFile相同,而读取到的文件内容会以函数返回值的形式返回
如果有错误发生,fs将会抛出异常,需要使用try和catch捕捉并处理异常
读取目录:异步fs.readdir(path,[callback(err,files)])
同步fs.readdirSync(path)
创建目录:异步fs.mkdir(path,[mode],[callback(err)])
同步fs.mkdirSync(path,[mode])
删除目录:异步fs.rmdir(path,[callback(err)])
同步fs.rmdirSync(path)
删除文件:异步fs.unlink(path,[callback(err)])
同步fs.unlinkSync(path)
修改文件时间戳:异步fs.utimes(path,atime,mtime,[callback(err)])
同步fs.utimesSync(path,atime,mtime)
获取文件信息:异步fs.stat(path,[callback(err,stats)])
同步fs.statSync(path)
写入文件内容:异步fs.writeFile(filename,[encoding],[callback(err,data)])
同步fs.writeFile(filename,[encoding])
读取文件内容:异步fs.readFile(filename,[encoding],[callback(err,data)])
同步fs.readFileSync(filename,[encoding],[callback(err,data)]
详解:①readFile(),readFileSync()读取文件
readFile方法用于异步读取数据,readFile方法的第一个参数是文件的路径.第二个参数是读取完成后的回调函数,该函数的第一个参数是发生错误时的错误对象,第二个参数是代表文件内容的Buffer实例
例子:
fs.readFile('./image.png', function (err, buffer) { if (err) throw err; //发生错误时的错误对象 process(buffer); //文件内容的Buffer实例 });
readFileSync方法用于同步读取文件,返回一个字符串.第一个参数是文件路径,第二个参数可以是一个表示配置的对象,也可以是一个表示文本文件编码的字符串
②writeFile(),writeFileSync()写入文件
writeFile方法异步写入文件,第一个参数是写入的文件名,第二个参数是写入的字符串,第三个参数是回调函数.回调函数前面,还可以再加一个参数,表示写入字符串的编码(默认是utf8)
writeFileSync方法用于同步写入文件,第一个参数是文件路径,第二个参数是写入文件的字符串,第三个参数是文件编码,默认为utf8
③exists(path, callback)判断文件存在与否
exists方法用来判断给定路径是否存在,然后不管结果如何,都会调用回调函数
下面的例子是如果给定目录存在,就删除它
if (fs.existsSync(outputFolder)) { console.log('Removing ' + outputFolder); fs.rmdirSync(outputFolder); }
④mkdir(),writeFile(),readFile()
mkdir方法用于新建目录,接受三个参数,第一个是目录名,第二个是权限值,第三个是回调函数
var fs = require('fs'); fs.mkdir('./helloDir',0777, function (err) { if (err) throw err; });
writeFile方法用于写入文件
readFile方法用于读取文件内容(注释:第一个参数是文件名,第二个参数是文件编码,第三个参数是回调函数。可用的文件编码包括“ascii”、“utf8”和“base64”。如果没有指定文件编码,返回的是原始的缓存二进制数据,这时需要调用buffer对象的toString方法,将其转为字符串)
⑤mkdirSync(),writeFileSync(),readFileSync()
同步建立目录、写入文件、读取文件
对于流量较大的服务器,最好还是采用异步操作,因为同步操作时,只有前一个操作结束,才会开始后一个操作,如果某个操作特别耗时(常常发生在读写数据时),会导致整个程序停顿
⑥readdir(),readdirSync()读取目录
读取目录,返回一个所包含的文件和子目录的数组
⑦stat方法:判断文件类型目录/文件
参数是一个文件或目录,它产生一个对象,该对象包含了该文件或目录的具体信息。我们往往通过该方法,判断正在处理的到底是一个文件,还是一个目录
var fs = require('fs'); fs.readdir('/etc/', function (err, files) { if (err) throw err; files.forEach( function (file) { fs.stat('/etc/' + file, function (err, stats) { if (err) throw err; if (stats.isFile()) { console.log("%s is file", file); } else if (stats.isDirectory ()) { console.log("%s is a directory", file); } console.log('stats: %s',JSON.stringify(stats)); }); }); });
⑧watchfile方法监听一个文件,如果该文件发生变化,就会自动触发回调函数
unwatchfile方法用于解除对文件的监听
⑨createReadStream方法往往用于打开大型的文本文件,创建一个读取操作的数据流。所谓大型文本文件,指的是文本文件的体积很大,读取操作的缓存装不下,只能分成几次发送,每次发送会触发一个data事件,发送结束会触发end事件
⑩createWriteStream方法创建一个写入数据流对象,该对象的write方法用于写入数据,end方法用于结束写入操作
createWriteStream方法创建一个写入数据流对象,该对象的write方法用于写入数据,end方法用于结束写入操作
相关推荐
nodejs的关于fs模块的编写,引入fs模块,修改文件内容。
Node 导入文件系统模块fs全称File System,专门用来操作系统中的文件,常用的操作方式是对文件的读取和写入。 Node.js 文件系统(fs 模块)模块中的方法分成两类,一类是同步,另一类是异步,例如读取文件内容的...
JavaScript 的是没有操作文件的能力,但是 Node 是可以做到的,Node 提供了操作文件系统模块,是 Node 中使用非常重要和高频的模块,是绝对要掌握的一个模块系统。 fs 模块提供了非常多的接口,这里主要说一下一些...
这是node常用的内置对象的笔记 http url fs querystring stream path
主要介绍了Node.js学习之内置模块fs用法,结合实例形式详细分析了node.js内置模块fs的基本功能、用法与相关操作注意事项,需要的朋友可以参考下
在Chrome应用中使用Node fs API 使用该模块 用法 该库可直接与针对Chrome打包应用的浏览器版本一起使用。 $ npm install chrome-fs --save $ browserify -r chrome-fs:fs index.js -o bundle.js API状态 该列表...
fsMethods Node.js fs模块常用功能的封装
Node.js核心API
fstk 是一个模块,用于使用各种实用方法扩展 Node 的 FS 模块,而不依赖于子进程(即 bash)。 入门 安装模块: npm install fstk var fstk = require ( 'fstk' ) ; 方法 所有方法都接受可选的选项对象和回调作为...
本文实例讲述了node.js基于fs模块对系统文件及目录进行读写操作的方法。分享给大家供大家参考,具体如下: 如果要用这个模块,首先需要引入,fs已经属于node.js自带的模块,所以直接引入即可 var fs = require('fs'...
前端直接引用nodejs fs 模块 实现文件下载续传、并没有想象中的那么难...
fs 模块是 Node.js 中的内置模块,称之为文件系统,提供了对计算机中的磁盘进行操作的功能。本章节将介绍 fs 模块的六个主要操作:文件写入、文件读取、文件移动与重命名、文件删除、文件夹操作和查看资源状态。 一...
我们将学习如何使用 Http 模块和 Fs 模块来提供静态文件,并学习如何使用模板引擎来渲染模板文件。 Lesson 5: Node 中的 stream Stream 是 Node.js 中的一个核心概念,用于处理大型数据流。Stream 提供了异步 I/O...
前端开源库-i18next-node-fs-backendi18下一个节点fs backend,node.js backend layer for i18下一个使用fs模块从文件系统加载资源
本文实例讲述了node.js中fs文件系统模块的使用方法。分享给大家供大家参考,具体如下: node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作。 fs模块中,所有的方法分为同步和异步两种...
JavaScript 的是没有操作文件的能力,但是 Node 是可以做到的,Node 提供了操作文件系统模块,是 Node 中使用非常重要和高频的模块,是绝对要掌握的一个模块系统。 fs 模块提供了非常多的接口,这里主要说一下一些...
fs模块.js: /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件... //fs是node.js的核心模块,不用下载安装,可以直接引入 //1. f
Node的fs模块的瘦包装器 该模块的目的是为文件系统相关功能提供统一的命名,并使所有功能都返回承诺。 安装 npm i vbarbarosh/node-fs
co-fs, nodejs核心fs模块 thunk"co" node 核心 fs 包装函数,返回 co的thunk 。安装$ npm install co-fs示例使用所有常规的非同步fs函数,无回调地狱:var json = yield fs.readFile('