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 模块)模块中的方法分成两类,一类是同步,另一类是异步,例如读取文件内容的...
这是node常用的内置对象的笔记 http url fs querystring stream path
Node.js的fs模块是核心模块之一,它允许开发者在Node.js环境中进行文件系统操作。由于JavaScript在浏览器环境里不直接支持文件系统访问,但Node.js作为一个服务器端运行时,提供了fs模块来弥补这一不足,使得开发者...
Node.js内置的文件系统模块fs是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状态 该列表...
优雅的fs(graceful-fs)是Node.js生态系统中一个重要的模块,它作为原生fs模块的一个增强版本,提供了一系列的改进和优化,旨在提高文件系统的操作性能和稳定性。在Node.js开发过程中,文件系统操作是不可或缺的一...
在Node.js中,fs(file system)模块是用于进行文件和目录操作的核心模块。这个模块提供了丰富的API,允许开发者执行诸如读取、写入、删除、追加等操作。下面我们将详细探讨fs模块的使用方法。 首先,导入fs模块...
例如,你可以结合`fs`模块读取文件,或者使用`axios`或`request`库下载远程文件,然后再用textract提取文本。这使得textract成为构建复杂文件处理工作流的一个强大组件。 总的来说,Node.js-textract是Node.js开发...
HTTP 模块是 Node.js 提供的核心模块之一,用于处理 HTTP 协议。在我们的例子中,我们引入这个模块并使用 `http.createServer()` 创建服务器。`createServer()` 接受一个回调函数,该函数处理每个传入的请求...
Node.js核心API
**Node.js SSH2 模块详解** 在 IT 领域,Node.js 是一个非常流行的 JavaScript 运行环境,它允许开发者使用 JavaScript 进行后端开发。在 Node.js 的生态系统中,`ssh2` 是一个强大的库,它提供了一个SSH2协议的...
fstk 是一个模块,用于使用各种实用方法扩展 Node 的 FS 模块,而不依赖于子进程(即 bash)。 入门 安装模块: npm install fstk var fstk = require ( 'fstk' ) ; 方法 所有方法都接受可选的选项对象和回调作为...
在Node.js环境中,fs(文件系统)模块是核心模块之一,用于进行文件和目录操作。`fsMethods`项目是对fs模块常用功能的封装,旨在提供更简洁、易用的接口,便于开发者处理文件系统任务。以下将详细介绍`fsMethods`...
在Node.js的开发中,标准的`fs`模块提供了丰富的文件系统操作接口,然而在实际应用中,开发者有时会需要更加强大和便捷的功能,比如文件的复制、删除以及递归创建目录等。这时,`fs-extra`库就显得尤为重要,它在`fs...
本文实例讲述了node.js基于fs模块对系统文件及目录进行读写操作的方法。分享给大家供大家参考,具体如下: 如果要用这个模块,首先需要引入,fs已经属于node.js自带的模块,所以直接引入即可 var fs = require('fs'...
在Node.js环境中,`fs`模块是用于与文件系统交互的核心模块,提供了各种读写文件、目录操作等方法。然而,原始的`fs`模块使用回调函数,这在处理异步操作时可能会导致回调地狱的问题。为了改善这种状况,`node-fs`...
我们将学习如何使用 Http 模块和 Fs 模块来提供静态文件,并学习如何使用模板引擎来渲染模板文件。 Lesson 5: Node 中的 stream Stream 是 Node.js 中的一个核心概念,用于处理大型数据流。Stream 提供了异步 I/O...
前端直接引用nodejs fs 模块 实现文件下载续传、并没有想象中的那么难...