技术实践
Node.js之《fs》文件操作
JavaScript 的是没有操作文件的能力,但是 Node 是可以做到的,Node 提供了操作文件系统模块,是 Node 中使用非常重要和

fs
JavaScript 的是没有操作文件的能力,但是 Node 是可以做到的,Node 提供了操作文件系统模块,是 Node 中使用非常重要和高频的模块,在node开发中必须掌握的一个模块
常见API
fs.stat 检测是文件还是目录
js
const fs = require('fs')
fs.stat('hello.js', (error,stats)=>{
if(error) {
console.log(error)
} else {
console.log(stats)
console.log(`文件:${stats.isFile()}`)
console.log(`目录:${stats.isDirectory()}`)
}
})
fs.mkdir 创建目录
js
onst fs = require('fs')
fs.mkdir('logs', error => {
if(error) {
console.log(error)
} else {
console.log('目录创建成功!')
}
})
fs.rmdir 删除目录
js
const fs = require('fs')
fs.rmdir('logs', error => {
if(error) {
console.log(error)
} else {
console.log('成功删除了目录 logs')
}
})
fs.writeFile 创建写入文件
js
const fs = require('fs')
fs.writeFile('logs/hello.log','您好~\n', error => {
if(error) {
console.log(error)
} else {
console.log('成功写入文件');
}
})
fs.appendFile 追加文件
js
const fs = require('fs')
fs.appendFile('logs/hello.log','hello~\n', error => {
if(error) {
console.log(error)
} else {
console.log('成功写入文件');
}
})
fs.readFile 读取文件
js
const fs = require('fs')
fs.readFile('logs/hello.log','utf-8', (error, data) => {
if(error) {
console.log(error)
} else {
console.log(data);
}
})
fs.unlink 删除文件
js
const fs = require('fs')
fs.unlink(`logs/${file}`, error => {
if(error) {
console.log(error)
} else {
console.log(`成功删除了文件: ${file}`)
}
})
fs.readdir 读取目录
js
const fs = require('fs')
fs.readdir('logs', (error, files) => {
if(error) {
console.log(error)
} else {
console.log(files);
}
})
fs.rename 重命名,还可以更改文件的存放路径
js
const fs = require('fs')
fs.rename('js/hello.log', 'js/greeting.log', error => {
if(error) {
console.log(error)
} else {
console.log('重命名成功')
}
})
mkdirp
推荐使用第三方包
bash
npm i mkdirp -D
js
const mkdirp = require('mkdirp')
mkdirp('tmp/foo/bar/baz').then(made => console.log(`创建目录于: ${made}`))
列子
js
// fs.createWriteStream 写入文件流
var fs = require("fs");
var data = "我是从数据库获取的数据,我要保存起来";
var writerStream = fs.createWriteStream('output.txt');
writerStream.write( data , 'UTF8' );
writerStream.end(); //标记文件末尾 结束写入流,释放资源
writerStream.on( 'finish', function() {
console.log("写入完成。");
});
writerStream.on( 'error', function(error){
console.log(error.stack);
});
console.log("程序执行完毕");
// pipe 管道流
var fs = require("fs");
var readerStream = fs.createReadStream( 'input.txt');
var writerStream = fs.createWriteStream( 'output.txt');
readerStream.pipe( writerStream );
console.log("程序执行完毕");
// fs.access 判断目录、文件是否存在(读写权限)
var fs = require('fs');
fs.access('package.json',(err)=>{
console.log(err ? '目录/文件不存在': '文件存在,可以进行读写');
});