Heim > Artikel > Web-Frontend > Machen Sie sich schnell mit den Dateioperationen und Streams (Streams) von Nodejs vertraut.
Dieser Artikel stellt Ihnen die Dateioperationen in Nodejs vor (Verzeichnisse/Dateien erstellen und löschen, umbenennen, Inhalte anhängen, Inhalte lesen) und geht kurz auf Streams ein.
NodeJS
Es ist nicht nur im Internet brillant, sondern kann logischerweise auch mit Dateien arbeiten, solange wir diese API verwenden vernünftigerweise
In Verbindung mit etwas Datenverarbeitung können wir viele lokale Vorgänge ausführen. [Empfohlenes Lernen: „nodejs TutorialNodeJS
除了在网络方面大放异彩,它还可以对文件进行操作,按逻辑上来说只要我们合理运用这些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
"]Wir wissen, dass wir require , und der Protagonist, den wir heute vorstellen möchten, ist das <code>fs
-Modul, ein in NodeJS
integriertes Dateimodul. Dieses Modul verfügt über viele APICode> für uns. <img src="https://img.php.cn/upload/image/235/577/894/162925288115805Machen%20Sie%20sich%20schnell%20mit%20den%20Dateioperationen%20und%20Streams%20(Streams)%20von%20Nodejs%20vertraut." title="162925288115805Machen Sie sich schnell mit den Dateioperationen und Streams (Streams) von Nodejs vertraut." alt="Machen Sie sich schnell mit den Dateioperationen und Streams (Streams) von Nodejs vertraut.">
Verzeichnisse und Dateien erstellen
🎜Wir könnenfs.mkdir
fs.writeFile
verwenden, um Erstellen Sie Verzeichnisse und Dateien separat. 🎜🎜mkdir()
kann drei Parameter empfangen, der erste ist der Pfad, der zweite ist eine optionale Option, die Berechtigungen darstellt, wir brauchen das im Allgemeinen nicht, der dritte Parameter ist eine Rückruffunktion, das können wir Führen Sie hier etwas Verarbeitung durch. 🎜🎜/* learnNode.js */ let fs = require('fs'); fs.readFile('newJs.txt', (err, data) => { if(err) { console.log('出错'); } else { console.log("读取文件成功!"); console.log(data); } })🎜🎜
writeFile()
kann vier Parameter empfangen, der erste ist der Pfad, der zweite ist der Dateiinhalt, die dritte Option stellt Berechtigungen dar und der vierte ist die Rückruffunktion. 🎜🎜/* learnNode.js */ let fs = require('fs'); fs.readdir('./', (err, data) => { if(err) { console.log('出错'); } else { console.log("读取目录成功!"); console.log(data); } })🎜🎜 🎜🎜Sie können sehen, dass wir das Verzeichnis erfolgreich erstellt und eine Datei geschrieben haben. 🎜🎜
fs.stat
verwenden, um zu erkennen, ob eine Datei in einem Pfad ein Verzeichnis oder ein Verzeichnis ist Datei, und dann können einige Vorgänge ausgeführt werden. 🎜🎜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() empfängt hauptsächlich zwei Parameter. Der erste ist die zu erkennende Datei und der zweite ist eine Rückruffunktion. Diese Rückruffunktion verfügt über zwei Parameter, nämlich
err
error und stats
Objekt, dieses Objekt stellt Informationen über die Datei bereit, wir können diese Objektinformationen beurteilen. 🎜🎜🎜🎜🎜Dateien löschen und Verzeichnisse löschen🎜🎜🎜Da wir NodeJS
zum Erstellen von Dateien verwenden können, können wir natürlich auch Dateien löschen, hauptsächlich mit fs.unlink``fs.rmdir
Diese beiden 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("程序执行完毕");🎜🎜Beide
API
erhalten zwei Parameter, nämlich Pfad und Rückruffunktion. Wenn Sie node learnNode.js
ausführen, können Sie sehen, dass unsere Datei erfolgreich gelöscht wurde. 🎜🎜🎜🎜🎜Umbenennen🎜🎜🎜Wir können fs.rename
verwenden, um die Datei umzubenennen. 🎜🎜rrreee🎜🎜rename()
kann drei Parameter empfangen. Der erste ist der Pfad, der zweite ist der geänderte Name und der dritte ist die Rückruffunktion Wenn der Speicherort der Datei, die dem zweiten Parameter entspricht, unterschiedlich ist, wird die vorherige Datei nicht umbenannt, sondern die Datei direkt ausgeschnitten und an einem anderen Speicherort abgelegt. 🎜🎜rrreeefs.appendFile
verwenden. 🎜🎜rrreee🎜🎜appendFile()
kann drei Parameter empfangen, der erste ist der Pfad, der zweite ist der Inhalt und der dritte ist die Rückruffunktion, führen Sie node learnNode.js aus Code> reicht aus. 🎜🎜🎜<img src="https://img.php.cn/upload/image/847/247/243/162925287798940Machen%20Sie%20sich%20schnell%20mit%20den%20Dateioperationen%20und%20Streams%20(Streams)%20von%20Nodejs%20vertraut." title="162925287798940Machen Sie sich schnell mit den Dateioperationen und Streams (Streams) von Nodejs vertraut." alt="Machen Sie sich schnell mit den Dateioperationen und Streams (Streams) von Nodejs vertraut.">🎜🎜Dateien lesen und Verzeichnisse lesen🎜🎜🎜Die oben genannten Vorgänge sind alle Vorgänge zum Hinzufügen, Löschen und Ändern von Dateien. Wir müssen jetzt auch den Leseinhalt beherrschen <code>fs.readFile
und fs.readdir
lesen Dateien bzw. Verzeichnisse. 🎜🎜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
作者:快跑啊小卢_
更多编程相关知识,请访问:编程视频!!
Das obige ist der detaillierte Inhalt vonMachen Sie sich schnell mit den Dateioperationen und Streams (Streams) von Nodejs vertraut.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!