Node.js中的fs 模块
Posted hello word
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js中的fs 模块相关的知识,希望对你有一定的参考价值。
// file system 是node的文件处理模块
const fs = require('fs')
const path = require('path')
// 1. readFile 此函数用来异步读取文件,并在回调中可以获取读取文件结果
// 这个方法会将一个文件的全部内容都读到内存中,适合于体积小的文本,如果文件有数百MB大小,则建议使用stream
let filePath = path.join(__dirname, 'test.txt')
fs.readFile(filePath, 'utf8', ( error, data) => {
console.log('readFile:', error, data)
})
// 1.1 readFileSync 是readFile 的同步版本可以直接返回读取结果
const data1 = fs.readFileSync(filePath, 'utf8')
// const data1 = fs.readFileSync(filePath, {encoding:'UTF-8'} )
console.log('readFileSync:', data1)
// 2. writeFile 写入文件,第一参数为文件名,如果不存在则会尝试创建它
let writePath = path.join(__dirname, 'test1.txt')
let data2 = '这是一个写入的数据'
// fs.writeFile(writePath, data2 , 'utf8', ( res ) => {
// console.log('writeFile:', res)
// })
let writePath1 = path.join(__dirname, 'test2.txt')
// 2.1 writeFileSync 写入文件,writeFile 的同步版本
// const data3 = fs.writeFileSync( writePath1, data2, 'utf8')
// console.log('writeFileSync:', data3)
// 3. stat(path, callback) 用来获取文件的状态,通常在调用open(),read() 等方法之前,用fs.stat方法
// 判断该文件是否存在,如果存在就会返回文件状态信息
fs.stat(filePath, (error, result) => {
// console.log(result)
})
// 3.1 同步版本
const data4 = fs.statSync(filePath)
// 4. readdir(path, function(error, result)) 读取目录下文件及目录
fs.readdir(__dirname, (error, result) => {
console.log('readdir:', error,result)
// [ 'buffer.js', 'fs.js', 'test.txt' ]
})
// 4.1 获取目录下所有子文件
function getDirFile(dirPath){
fs.readdir(dirPath, (error, result) =>{
console.log('result',result)
for (let item of result) {
const fileStatus = fs.statSync(path.join(dirPath, item))
// console.log('fileStatus:',fileStatus)
// console.log(fileStatus.isDirectory()) // 判断是否为文件夹
if(fileStatus.isDirectory()){
getDirFile(path.join(dirPath, item))
}
}
})
}
getDirFile(__dirname)
以上是关于Node.js中的fs 模块的主要内容,如果未能解决你的问题,请参考以下文章
Promise--实践练习之fs模块 & node运行Js脚本 & Promise封装练习-fs模块 & util.promisify方法