Maison > Article > interface Web > Vous présenter rapidement les opérations sur les fichiers et les flux Nodejs (streams)
Cet article vous présentera les opérations sur les fichiers dans Nodejs (créer et supprimer des répertoires/fichiers, renommer, ajouter du contenu, lire du contenu) et parler brièvement des flux.
NodeJS
En plus d'être génial sur Internet, il peut également opérer sur des fichiers Logiquement parlant, à condition d'utiliser ces api. raisonnablement
Couplé à certains traitements de données, nous pouvons réaliser de nombreuses opérations locales. [Apprentissage recommandé : "nodejs tutorielNodeJS
除了在网络方面大放异彩,它还可以对文件进行操作,按逻辑上来说只要我们合理运用这些api
再加上一些数据处理,我们就可以完成本地很多的操作。【推荐学习:《nodejs 教程》】require
,而今天要介绍的主角是fs
模块,也就是NodeJS
内置的一个文件模块,这个模块有很多的API
供我们使用。fs.mkdir
fs.writeFile
来分别创建目录和文件。mkdir()
可以接收三个参数,第一个是路径,第二个是个可选项代表权限,这个我们一般不需要,第三个参数是一个回调函数,我们可以在这里面做一些处理。/* learnNode.js */ let fs = require('fs'); fs.mkdir('js',(err)=>{ if(err){ console.log('出错') }else{ console.log('未出错') } })
writeFile()
可以接收四个参数,第一个是路径,第二个是文件内容,第三个可选项代表权限,第四个是回调函数。/* learnNode.js */ let fs = require('fs'); fs.writeFile('./js/newJs.js','console.log("写入这个")',(err)=>{ if(err){ console.log('出错') }else{ console.log('没出错') } })
fs.stat
来检测一个路径的文件是为目录还是文件,进而可以做一些操作。/* learnNode.js */ let fs = require('fs'); fs.stat('./js/newJs.js', (error, stats) => { if(error) { console.log(error); return false; } else { console.log(`是否文件:${stats.isFile()}`); console.log(`是否目录:${stats.isDirectory()}`); return false; } })
err
错误和stats
对象,这个对象提供有关文件的信息,我们可以对这个对象信息来进行判断。NodeJS
创建文件那当然我们也可以删除文件,主要使用的是fs.unlink``fs.rmdir
这两个API
。/* learnNode.js */ let fs = require('fs'); fs.unlink('./js/newJs.js', (err) => { if (err) throw err; console.log('文件已删除'); }); fs.rmdir('./js',(err)=>{ if (err) throw err; console.log('目录已删除'); })
API
都分别接收两个参数是路径和回调函数,执行node learnNode.js
可以看到我们文件已经成功删除。fs.rename
来对文件重命名。/* learnNode.js */ let fs = require('fs'); fs.rename('oldJs.js','newJs.js',(err)=>{ if(err){ console.log('出错') }else{ console.log('未出错') } })
rename()
可以接收三个参数第一个是路径第二个是更改的名称,第三个是回调函数,值得注意的是,如果第一个参数和第二个参数对应的文件所在的位置不一样时,他不会重命名之前那个文件而是直接把文件剪切放到另一个地方。/* learnNode.js */ let fs = require('fs'); fs.rename('newJs.js','./js/oldJs.js',(err)=>{ if(err){ console.log('出错') }else{ console.log('剪切到js文件夹内了') } })
fs.appendFile
。/* learnNode.js */ let fs = require('fs'); fs.appendFile('newJs.txt','我是追加的内容',(err)=>{ if(err){ console.log('出错') }else{ console.log('追加内容') } })
appendFile()
可以接收三个参数,第一个是路径,第二个是内容,第三个是回调函数,执行node learnNode.js
即可。fs.readFile
和fs.readdir
"]Nous savons que si nous voulons référencer un module, nous devons utiliser require , et le protagoniste que nous souhaitons présenter aujourd'hui est le module <code>fs
, qui est un module de fichiers intégré à NodeJS
. Ce module possède de nombreuses APIcode> que nous pouvons utiliser. <img src="https://img.php.cn/upload/image/235/577/894/162925288115805Vous%20pr%C3%A9senter%20rapidement%20les%20op%C3%A9rations%20sur%20les%20fichiers%20et%20les%20flux%20Nodejs%20(streams)" title="162925288115805Vous présenter rapidement les opérations sur les fichiers et les flux Nodejs (streams)" alt="Vous présenter rapidement les opérations sur les fichiers et les flux Nodejs (streams)">
Créer des répertoires et des fichiers
🎜Nous pouvons utiliserfs.mkdir
fs.writeFile
pour Créez des répertoires et des fichiers séparément. 🎜🎜mkdir()
peut recevoir trois paramètres. Le premier est le chemin, et le second est une option facultative représentant les autorisations. Le troisième paramètre est une fonction de rappel. peut effectuer un traitement ici. 🎜🎜/* learnNode.js */ let fs = require('fs'); fs.readFile('newJs.txt', (err, data) => { if(err) { console.log('出错'); } else { console.log("读取文件成功!"); console.log(data); } })🎜🎜
writeFile()
peut recevoir quatre paramètres, le premier est le chemin, le second est le contenu du fichier, la troisième option représente les autorisations et la quatrième est la fonction de rappel. 🎜🎜/* learnNode.js */ let fs = require('fs'); fs.readdir('./', (err, data) => { if(err) { console.log('出错'); } else { console.log("读取目录成功!"); console.log(data); } })🎜🎜 🎜🎜Vous pouvez voir que nous avons réussi à créer le répertoire et à écrire un fichier. 🎜🎜
fs.stat
pour détecter si un fichier dans un chemin est un répertoire ou un fichier, puis Certaines opérations peuvent être effectuées. 🎜🎜var fs = require("fs"); var data = ''; // 创建可读流 var readerStream = fs.createReadStream('newJs.txt'); // 设置编码为 utf8。 readerStream.setEncoding('UTF8'); // 处理流事件 遇到有数据时执行这个 readerStream.on('data', function(chunk) { data += chunk; console.log(chunk,'流遇到数据了') }); // 处理流事件 流结束时执行这个 readerStream.on('end',function(){ console.log(data,'流结束了'); }); // 处理流事件 流报错时执行这个 readerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");🎜🎜star() reçoit principalement deux paramètres Le premier est le fichier à détecter, et le second est une fonction de rappel. Cette fonction de rappel a deux paramètres, à savoir
err
error et fs.unlink``fs.rmdir
Ces deux API
. 🎜🎜var fs = require("fs"); var data = '我是小卢,我再写入流'; // 创建一个可以写入的流,写入到文件 newJs.txt 中 var writerStream = fs.createWriteStream('newJs.txt'); // 使用 utf8 编码写入数据 writerStream.write(data,'UTF8'); // 标记文件末尾 writerStream.end(); // 处理流事件 完成和报错时执行 writerStream.on('finish', function() { console.log("写入完毕"); }); writerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");🎜🎜Les deux
API
reçoivent respectivement deux paramètres, qui sont le chemin et la fonction de rappel. L'exécution de node learnNode.js
peut voir que notre fichier a été supprimé avec succès. 🎜🎜🎜🎜🎜Rename🎜🎜🎜Nous pouvons utiliser fs.rename
pour renommer le fichier. 🎜🎜rrreee🎜🎜rename()
peut recevoir trois paramètres Le premier est le chemin, le second est le nom modifié et le troisième est la fonction de rappel. Lorsque l'emplacement du fichier correspondant au deuxième paramètre est différent, il ne renommera pas le fichier précédent mais coupera directement le fichier et le mettra dans un autre emplacement. 🎜🎜rrreeefs.appendFile
. 🎜🎜rrreee🎜🎜appendFile()
peut recevoir trois paramètres, le premier est le chemin, le deuxième est le contenu et le troisième est la fonction de rappel, exécutez node learnNode.js code> code> suffit. 🎜🎜🎜<img src="https://img.php.cn/upload/image/847/247/243/162925287798940Vous%20pr%C3%A9senter%20rapidement%20les%20op%C3%A9rations%20sur%20les%20fichiers%20et%20les%20flux%20Nodejs%20(streams)" title="162925287798940Vous présenter rapidement les opérations sur les fichiers et les flux Nodejs (streams)" alt="Vous présenter rapidement les opérations sur les fichiers et les flux Nodejs (streams)">🎜🎜Lire des fichiers et lire des répertoires🎜🎜🎜Ce qui précède sont toutes les opérations d'ajout, de suppression et de modification de fichiers Nous devons maintenant également maîtriser le contenu de lecture que nous pouvons utiliser. <code>fs.readFile
et fs.readdir
lisent respectivement les fichiers et les répertoires. 🎜🎜rrreee🎜🎜🎜rrreee🎜🎜🎜API
都是接收两个参数,第一个是路径,第二个是回调函数,这个回调函数也有两个参数里面包含了data
信息,我们可以打印这个data
信息来获取内容。stream
,翻译过来就是流
的意思,提到流你会想到什么,河流,水流,都是从一个源头到另一个源头,就像水龙头从开关到流到地面,stream
也是这样一个过程。error
,有数据时触发的data
。var fs = require("fs"); var data = ''; // 创建可读流 var readerStream = fs.createReadStream('newJs.txt'); // 设置编码为 utf8。 readerStream.setEncoding('UTF8'); // 处理流事件 遇到有数据时执行这个 readerStream.on('data', function(chunk) { data += chunk; console.log(chunk,'流遇到数据了') }); // 处理流事件 流结束时执行这个 readerStream.on('end',function(){ console.log(data,'流结束了'); }); // 处理流事件 流报错时执行这个 readerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");
fs.createReadStream()
,参数是你要读的文件路径。readerStream.on('data',callback())
,如下图所示。readerStream.on('end',callback())
,如下图所示。var fs = require("fs"); var data = '我是小卢,我再写入流'; // 创建一个可以写入的流,写入到文件 newJs.txt 中 var writerStream = fs.createWriteStream('newJs.txt'); // 使用 utf8 编码写入数据 writerStream.write(data,'UTF8'); // 标记文件末尾 writerStream.end(); // 处理流事件 完成和报错时执行 writerStream.on('finish', function() { console.log("写入完毕"); }); writerStream.on('error', function(err){ console.log(err.stack); }); console.log("程序执行完毕");
data
数据写入newJs.txt
文件中。readerStream.on('finish',callback())
,如下图所示。newJs.txt
文件中已经存在了我们写入的数据。总的来说NodeJS
提供了fs
文件操作模块,这个模块有很多的API
,上面只是简单的展示了一下,还有很多有趣的API
大家只需要用到的时候去官网查就好了,因为NodeJS
能操作文件,小至文件查找,大至代码编译。换个角度讲,几乎也只需要一些数据处理逻辑,再加上一些文件操作,就能够编写出大多数前端工具。
原文地址:https://juejin.cn/post/6997204352683212831
作者:快跑啊小卢_
更多编程相关知识,请访问:编程视频!!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!