Cet article est principalement écrit pour les étudiants qui découvrent node.js. Cet article présente principalement le module de fichiers de nodejs. Grâce au module de fichiers de nodejs, nous pouvons créer, lire, modifier et supprimer des fichiers sur notre système d'exploitation. . Les fichiers ou dossiers peuvent également être exécutés sur des serveurs Linux de la même manière. Parce que nodejs est un environnement d'exécution JavaScript multiplateforme. [Apprentissage recommandé : "Tutoriel Nodejs"]
Document officiel du système de fichiers Nodejs : https://nodejs.org/dist/latest-v14.x/docs/api/fs.html
Code source : https:/ / github.com/cmdfas/nodejs-file-system
├── files │ ├── file1 │ └── file2 ├── dir.js ├── index-callback.js ├── index-promise.js └── stream.js
Créez index-callback.js
, le code est le suivantindex-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
est utilisé pour lire le contenu du fichier une fois la lecture réussie, la fonction de rappel renvoie le format du tampon, la méthode toString() en a donc besoin. à appeler
appendFile
Ajoute le contenu à la fois. fin du fichier. Si le fichier n'existe pas, il créera automatiquement le fichier
rename
peut être utilisé pour modifier le nom du fichierpath.join code> est utilisé pour fusionner les chemins de fichiers, ce qui peut éviter le problème des différents formats de chemin dans différents systèmes d'exploitation
index-promise.js, le code est le suivant 🎜rrreee🎜 Résumé : 🎜<ul>
<li> Par rapport aux opérations de rappel, l'utilisation des opérations d'attente asynchrone sera plus élégante et ne provoquera pas un enfer de rappel🎜</li>
<li>Utilisez <code>unlink
pour supprimer des fichiers🎜🎜stream.js
, le code est le suivant🎜pipe
. importe automatiquement le flux de fichiers de lecture dans le flux d'écriture, ce qui équivaut à une opération pratique. 🎜dir.js
, le code est le suivant 🎜rrreee🎜Résumé : 🎜existsSync code> est une méthode de synchronisation, utilisée pour déterminer si le dossier existe🎜<li>
<code>mkdir
Créer un dossier🎜rmdir
Supprimer un dossier🎜🎜🎜Ces 3 opérations La méthode du dossier est très courante, tout comme manger tous les jours. 🎜🎜Pour plus de connaissances sur la programmation, veuillez visiter : 🎜Introduction à la programmation🎜 ! ! 🎜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!