Heim > Web-Frontend > js-Tutorial > Hauptteil

Teilen Sie einige allgemeine Nodejs-Datei-FS-Modul-APIs (Zusammenfassung)

青灯夜游
Freigeben: 2021-08-27 09:11:22
nach vorne
2245 Leute haben es durchsucht

In diesem Artikel werden einige NodejsFile-FS-Modul-APIs organisiert und aufgezeichnet, die häufig bei der Arbeit verwendet werden, damit Sie sie beim nächsten Mal nicht vergessen.

Teilen Sie einige allgemeine Nodejs-Datei-FS-Modul-APIs (Zusammenfassung)

Als Webentwicklungsingenieur muss ich mich mit Nodejs auseinandersetzen. Das fs-Modul ist sehr nützlich und kann einige dateibezogene Vorgänge ausführen, aber ich vergesse es immer. Ich habe vor, es heute noch einmal zu ordnen und aufzuzeichnen, um es beim nächsten Mal nicht zu vergessen.

Synchron und asynchron

Die Dateioperationen des fs-Moduls unterstützen im Allgemeinen sowohl synchrone als auch asynchrone APIs, und asynchron umfasst auch Rückruffunktionen und Promsie-Formulare. Auf die Synchronisierung folgen normalerweise die Wörter sync. [Empfohlenes Lernen: „nodejs Tutorialsync字样。【推荐学习:《nodejs 教程》】

打开、关闭文件

fs.open(path:string,callback:(err,fd)=>void)用于打开文件,获取文件描述符(file descriptor),基于拿到的文件描述符做文件操作。fs.close(fd:number,callback:(err)=>void)用于关闭文件

//打开文件
fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作
    
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})
Nach dem Login kopieren

一般用于对文件做多种操作时使用。如果你仅仅想读取文件的内容建议用fs.readFile

读取文件(目录)

读取文件:fs.readFile(path:string,callback:(err,data)=>void)

fs.readFile(path,(err,data)=>{
    //string或者buffer
    console.log(data)
})
Nach dem Login kopieren

读取目录:fs.readdir(path:string,callback:(err,files:Array<string>)=>void)

fs.readdir("./dir",(err,fileNames)=>{
    console.log(fileNames)
})
Nach dem Login kopieren

还有一种方式通过文件描述符来读取:

fs.read(fd,buffer,offset,length,position,callback:(err,bytesLen,buffer)=>void)

//分配一块长度为10的缓存区
const buffer = Buffer.alloc(10);
//打开文件
fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作:将fd对应的文件内容读取到buffer里
    //position为文件的起点
    //length为读取的长度
    //offset为缓存区起读的位置
    fs.read(fd,buffer,offset,length,position,(err,bytesLen,buffer)=>{
        //buffer为包含读到数据的原始buffer对象
        //bytesLen === length;// true
    })
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})
Nach dem Login kopieren

写入文件

将数据写入文件,数据可以是字符串buffer:fs.writeFile(path,data,callback:(err)=>void)

fs.writeFile(&#39;message.txt&#39;, data, (err) => {
  if (err) throw err;
});
Nach dem Login kopieren

还有另一种方式,通过文件描述符fd来写文件:

fs.open(path,(err,fd)=>{
    //针对拿到的fd 进行操作:将buffer内容写如fd对应的文件里
    //position为文件的起点
    //length为待写的长度
    //offset为缓存区起写的位置
    fs.write(fd,buffer,offset,length,position,(err,bytesWrittenLen,buffer)=>{

    })
    //关闭文件
    fs.close(fd, (err) => {
        if (err) throw err;
    });
})
Nach dem Login kopieren

删除文件(目录)

删除文件:fs.unlink(path, callback:(err)=>void)

删除目录:fs.rmdir(path,callback:(err)=>void)

同时支持删除目录和文件:fs.rm(path,callback:(err)=>void)"]

Dateien öffnen und schließen

fs.open(path:string,callback:(err,fd)=>void) wird zum Öffnen und Abrufen von Dateien verwendet Dateideskriptor (Dateideskriptor), führt Dateioperationen basierend auf dem erhaltenen Dateideskriptor aus. fs.close(fd:number,callback:(err)=>void) wird zum Schließen der Datei verwendet

fs.stat(path,(err,stat)=>{
    //stat包含了该目录或文件的大小、创建时间、更新时间,是目录还是文件等
    //stats.isDirectory()
    //stats.isFile()
})
Nach dem Login kopieren
Es wird im Allgemeinen verwendet, wenn verschiedene Vorgänge an Dateien ausgeführt werden. Wenn Sie nur den Inhalt der Datei lesen möchten, empfiehlt sich die Verwendung von fs.readFile

Lesen Sie die Datei (das Verzeichnis)

Datei lesen: fs.readFile(path:string,callback:(err,data)=>void)
//文件
fs.rename(&#39;oldFile.txt&#39;, &#39;newFile.txt&#39;, (err) => {
  if (err) throw err;
  console.log(&#39;Rename complete!&#39;);
});
//目录
fs.rename(&#39;oldFileDir&#39;, &#39;newFileDir&#39;, (err) => {
  if (err) throw err;
  console.log(&#39;Rename complete!&#39;);
});
Nach dem Login kopieren
Verzeichnis lesen:fs.readdir(path:string,callback: (err,files: Array<string>)=>void)rrreee

Es gibt eine andere Möglichkeit, den Dateideskriptor durchzulesen:

fs.read(fd,buffer,offset,length, position,callback: (err,bytesLen,buffer)=>void)rrreee

In Datei schreiben

🎜🎜Daten in die Datei schreiben, die Daten können sei 🎜string🎜 Oder 🎜buffer🎜:fs.writeFile(path,data,callback:(err)=>void)🎜rrreee🎜Es gibt einen anderen Weg, über den Dateideskriptor fd code>Zum Schreiben von Dateien:🎜rrreee

🎜Dateien (Verzeichnisse) löschen🎜🎜🎜Dateien löschen:fs.unlink(path, callback:(err) =>void)🎜🎜Verzeichnisse löschen: fs.rmdir(path,callback:(err)=>void)🎜🎜Unterstützt das gleichzeitige Löschen von Verzeichnissen und Dateien: fs.rm(path , callback: (err)=>void)🎜🎜🎜Statusinformationen des Verzeichnisses (der Datei) anzeigen🎜🎜rrreee🎜🎜Umbenennen🎜🎜🎜Umbenennen umfasst das Umbenennen von Dateien und Verzeichnissen 🎜rrreee🎜🎜Endlich🎜 🎜🎜Danke fürs Lesen. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht zur Diskussion, danke! 🎜🎜Weitere Kenntnisse zum Thema Programmierung finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonTeilen Sie einige allgemeine Nodejs-Datei-FS-Modul-APIs (Zusammenfassung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage