This article uses the case of reading and writing files and processing paths to learn about the fs file module and path module in Node. I hope it will be helpful to everyone!
fs module is Node. js Officially provided module for manipulating files. It provides a series of methods and properties to meet user requirements for file operations. [Related tutorial recommendations: nodejs video tutorial]
##fs. readFile(): Read the contents of the specified file
Parameter 1: Required parameter, string, indicating the path of the fileParameter 2: Optional parameter, indicating what Encoding format to read the file
Parameter 3: Required parameter. After the file reading is completed, the read result is obtained through the callback functionfs.readFile(path, [options], callback)Copy after login
Example 1: Read demo.txt file
##demo.txt file'前端杂货铺'
// 导入 fs 文件系统模块
const fs = require('fs')
// 读取文件 utf-8 为中文编码格式
fs.readFile('../files/demo.txt', 'utf-8', function (err, data) {
console.log('err:', err)
console.log('data:', data)
})
Example 2: Determine whether reading the demo.txt file is successful
app.js fileIntentional wrong path, reading failed// 导入 fs 模块 const fs = require('fs') // 读取文件 fs.readFile('../files/demo1.txt', 'utf-8', function (err, data) { if(err) { return console.log('读取文件失败', err.message) } console.log('data:', data) })
Parameter 1: Required parameter, you need to specify a string of file path, indicating the storage path of the file
Parameter 2: Required parameter, indicating the content to be writtenParameter 3: Yes Select the parameter to indicate the format in which the file content is written. The default is utf-8
Parameter 4: Required parameter, the callback function after the file writing is completedfs.writeFile(file, data, [options], callback)Copy after login
Example 1: Write demo.txt file
##demo.txt file
// 该文件内容为空
// 导入 fs 文件系统模块 const fs = require('fs') // 写入文件内容 fs.writeFile('../files/demo.txt', '这里是前端杂货铺', function(err, data) { if (err) { return console.log('写入文件失败', err.message) } console.log('文件写入成功') })
Note: If writing to a disk that does not exist, the file writing fails and the printed content is as follows
Grade format before conversion
Grade format after conversion
The file format is as follows
score.txt file
Write the score Content
杂货铺=100 张三=98 李四=95 王五=92
Import the required fs file module
// 导入 fs 文件系统模块 const fs = require('fs') // 写入文件内容 fs.readFile('../files/score.txt', 'utf-8', function (err, data) { // 判断是否读取成功 if (err) { return console.log('读取文件失败' + err.message) } // 把成绩按空格进行分割 const arrOld = data.split(' ') // 新数组的存放 const arrNew = [] // 循环分割后的数组 对每一项数据 进行字符串的替换操作 arrOld.forEach(item => { arrNew.push(item.replace('=', ':')) }) // 把新数组中的每一项合并 得到新的字符串 const newStr = arrNew.join('\r\n') // 写入新数据 fs.writeFile('../files/newScore.txt', newStr, function (err) { if (err) { return console.log('写入成绩失败' + err.message) } console.log('成绩写入成功') }) })
Example: Write relative path
const fs = require('fs') fs.readFile('../files/score.txt', 'utf-8', function(err, data) { if (err) { return console.log('文件读取失败' + err.message) } console.log('文件读取成功') })
示例:使用 __dirname
const fs = require('fs') // 读取文件 fs.readFile(__dirname + '/files/score.txt', 'utf-8', function(err, data) { if (err) { return console.log('文件读取失败' + err.message) } console.log('文件读取成功') })
path 模块是 Node.js 官方提供的、用来处理路径的模块
path.join():用来将多个路径判断拼接成一个完整的路径字符串
参数:…paths
<string>
路径片段的序列
返回值:返回值<string>
path.join([...paths])
示例:路径拼接
// 导入 path 模块 const path = require('path') // ../ 会抵消前面的路径 const pathStr = path.join('/a','/b/c', '../', './d', 'e') console.log(pathStr)
备注:涉及到路径拼接的操作,都要使用 path.join() 方法进行处理。不要直接用 + 进行字符串拼接
示例:使用 path 进行路径拼接
const fs = require('fs') const path = require('path') // 文件读取 fs.readFile(path.join(__dirname, '/files/score.txt'), 'utf-8', function(err, data) { if (err) { return console.log('文件读取失败', err.message) } console.log('文件读取成功') })
path.basename():用来从路径字符串中,将文件名解析出来
参数 1:path 必选参数,表示一个路径的字符串
参数 2:ext 可选参数,表达文件扩展名
返回值:返回 表示路径中的最后一部分
path.basename(path, [ext])
示例:解析路径,去除扩展名
// 导入 path 模块 const path = require('path') // 文件的存放路径 const fpath = '/a/b/c/index.html' // 将文件名解析出来 const fullName = path.basename(fpath) console.log(fullName) // 输出 index.html // 去除扩展名 const nameWithoutExt = path.basename(fpath, '.html') console.log(nameWithoutExt) // 输出 index
path.extname():可以获取路径中的扩展名部分
参数:
path <string>
必选参数,表示一个路径的字符串
返回值:返回<string>
返回得到的扩展名字符串
path.extname(path)
示例:获取扩展名
// 导入 path 模块 const path = require('path') // 文件的存放路径 const fpath = '/a/b/c/index.html' // 获取扩展名 const fext = path.extname(fpath) console.log(fext) // .html
更多node相关知识,请访问:nodejs 教程!
The above is the detailed content of An article to talk about the fs file module and path module in Node (case analysis). For more information, please follow other related articles on the PHP Chinese website!