Dieser Artikel richtet sich hauptsächlich an Studenten, die neu bei node.js sind. Über das Dateimodul von nodejs können wir Dateien auf unserem Betriebssystem erstellen, lesen, ändern und löschen Auf die gleiche Weise können auch Dateien oder Ordner auf Linux-Servern ausgeführt werden. Weil nodejs eine plattformübergreifende JavaScript-Laufumgebung ist. [Empfohlenes Lernen: „nodejs Tutorial“]
Offizielles Dokument zum Nodejs-Dateisystem: https://nodejs.org/dist/latest-v14.x/docs/api/fs.html
Quellcode: https:/ / github.com/cmdfas/nodejs-file-system
├── files │ ├── file1 │ └── file2 ├── dir.js ├── index-callback.js ├── index-promise.js └── stream.js
Erstellen Sie index-callback.js
, der Code lautet wie folgtindex-callback.js
,代码如下
const fs = require('fs') const path = require('path') // 读取文件 fs.readFile(path.join(__dirname, 'files', 'file1'), (err, buf) => { if (err) throw err console.log(buf.toString()) }) // 写入文件 fs.writeFile(path.join(__dirname, 'files', 'file3'), '欢迎光临', (err) => { if (err) throw err console.log('写入完成') // 在文件末尾追加 fs.appendFile(path.join(__dirname, 'files', 'file3'), '\n\n男宾三位', (err) => { if (err) throw err console.log('追加完成') // 修改文件名称 fs.rename(path.join(__dirname, 'files', 'file3'), path.join(__dirname, 'files', 'file3-rename'), (err) => { if (err) throw err console.log('改名完成') }) }) })
总结:
readFile
用来读取文件的内容,在读取成功后在回调函数返回的是buffer格式,所以需要调用toString()方法writeFile
写入内容进文件,如果文件不存在会自动创建文件appendFile
在文件末尾追加内容,如果文件不存在会自动创建文件rename
可以用来修改文件名称path.join
用来拼接文件路径,可以避免不同操作系统路径格式不同的问题__dirname
是node.js全局变量,默认是当前项目目录创建index-promise.js
,代码如下
const fsPromises = require('fs').promises const path = require('path') const fileFunc = async () => { try { const data = await fsPromises.readFile(path.join(__dirname, 'files', 'file1')) console.log(data.toString()) await fsPromises.unlink(path.join(__dirname, 'files', 'file1')) await fsPromises.writeFile(path.join(__dirname, 'files', 'file5'), data) await fsPromises.appendFile(path.join(__dirname, 'files', 'file5'), '\n\n欢迎光临') await fsPromises.rename(path.join(__dirname, 'files', 'file5'), path.join(__dirname, 'files', 'file5-rename')) const newData = await fsPromises.readFile(path.join(__dirname, 'files', 'file5-rename')) console.log(newData.toString()) } catch (error) { console.log(error) } } fileFunc()
总结:
unlink
用来删除文件创建stream.js
,代码如下
const fs = require('fs') // 读取文件流 const rs = fs.createReadStream('./files/file2', { encoding: 'utf8' }) // 写入文件流 const ws = fs.createWriteStream('./files/new-file2') // 监听读取并写入 rs.on('data', (chunk) => { ws.write(chunk) })
在读取大文件时或者处理网络文件时,文件流操作很有用,在操作大文件时,我们可以设置每次读取的数据量大小,默认是64kb
const fs = require('fs') // 读取文件流 const rs = fs.createReadStream('./files/file2', { encoding: 'utf8' }) // 写入文件流 const ws = fs.createWriteStream('./files/new-file2') rs.pipe(ws)
pipe
方法自动将读取文件流导入到写入流,相当于一个便捷操作。
创建dir.js
,代码如下
const fs = require('fs') // 判断文件夹是否存在 if (!fs.existsSync('./new')) { // 创建文件夹 fs.mkdir('./new', (err) => { if (err) throw err console.log('文件夹创建成功') }) } if (fs.existsSync('./new')) { // 删除文件夹 fs.rmdir('./new', (err) => { if (err) throw err console.log('文件夹删除成功') }) }
总结:
existsSync
是同步方法,用来判断文件夹是否存在mkdir
创建文件夹rmdir
rrreeereadFile
wird verwendet, um den Inhalt der Datei zu lesen. Nach erfolgreichem Lesen gibt die Rückruffunktion das Pufferformat zurück, sodass die toString()-Methode benötigt wird aufgerufen werden
writeFile
Schreibt Inhalt in die Datei. Wenn die Datei nicht existiert, wird automatisch die Datei erstelltappendFile
Hängt Inhalt an Ende der Datei. Wenn die Datei nicht vorhanden ist, wird sie automatisch erstellt
rename
kann verwendet werden, um den Dateinamen zu ändernpath.join code> wird zum Zusammenfügen von Dateipfaden verwendet, wodurch das Problem unterschiedlicher Pfadformate in verschiedenen Betriebssystemen vermieden werden kann
index-promise.js, der Code lautet wie folgt 🎜rrreee🎜 Zusammenfassung: 🎜<ul>
<li> Im Vergleich zu Rückrufvorgängen ist die Verwendung von asynchronen Wartevorgängen eleganter und verursacht keine Rückrufhölle🎜</li>
<li>Verwenden Sie <code>unlink
, um Dateien zu löschen🎜🎜stream.js
, der Code lautet wie folgt🎜pipe
Importiert den gelesenen Dateistream automatisch in den Schreibstream, was einem praktischen Vorgang entspricht. 🎜dir.js
, der Code lautet wie folgt 🎜rrreee🎜Zusammenfassung: 🎜existsSync code> ist eine Synchronisierungsmethode, die verwendet wird, um festzustellen, ob der Ordner vorhanden ist 3 Operationen Die Ordnermethode ist sehr verbreitet, genau wie das tägliche Essen. 🎜🎜Weitere Kenntnisse zum Thema Programmierung finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜
Das obige ist der detaillierte Inhalt vonVerstehen Sie schnell, wie Sie Dateien in NodeJS-Projekten hinzufügen, löschen, ändern und überprüfen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!