配置步骤
1. https://www.npmjs.com/package/fs
fs模块的官网链接
2. 集成终端中输入 cnpm i mkdirp --save 或 npm i mkdirp --save
3.引入模块 const mkdirp = require('mkdirp');
4.看文档使用
基本使用
引入模块
var fs = require('fs');
1. fs.stat 检测是文件还是目录
fs.stat('./package.json',(erro,data)=>{
if(erro){
console.log('erro');
return;
}
console.log(`是文件${data.isFile()}`); //判断是文件
console.log(`是目录${data.isDirectory()}`); //判断是目录
})
2. fs.mkdir 创建目录
fs.mkdir('./css',(erro)=>{
if(erro){
console.log(erro);
return;
}
console.log('创建成功');
})
3. fs.writeFile 创建写入文件
( 如果已经创建过或者文件已经存在,会重绘原来文件的内容 )
fs.writeFile('./html/nihao.html','nihao,哈哈哈哈',(erro)=>{
if(erro){
console.log(erro);
return;
}
console.log('创建成功');
})
4. fs.appendFile 追加文件
( 如果文件不存在 会创建并写入内容 如果已经存在 会追加内容)
fs.appendFile('./css/app.css','body{color:yellow}\n',(erro)=>{
if(erro){
console.log(erro);
return;
}
console.log('appendFile 成功');
})
fs.appendFile('./css/app.css','h2{color:blue}\n',(erro)=>{
if(erro){
console.log(erro);
return;
}
console.log('appendFile 成功');
})
5. fs.readFile 读取文件
fs.readFile('./html/nihao.html',(erro,data)=>{
if(erro){
console.log(erro);
return;
}
console.log(data);
console.log(data.toString()); //todo 把读取到的文件buffer转换为字符串
})
6. fs.readdir 读取目录
(不仅可以读取目录下的文件 还可以读取目录下的目录)
fs.readdir('../demo fs', (erro, data) => {
if (erro) {
console.log(erro);
return;
}
console.log(data);
})
7. fs.rename 重命名
(重命名 或者 重命名+移动文件 第二个参数'...'中可以直接更改名字或者移动位置)
fs.rename('./css/aaa.css', './html/bbb.css', (erro) => {
if (erro) {
console.log(erro);
return;
}
console.log('rename 成功');
})
8. fs.unlink 删除文件
fs.unlink('./aaaa/aaa.js', (erro) => {
if (erro) {
console.log(erro);
return;
}
console.log('unlink 成功');
})
9. fs.rmdir 删除目录
(必须先读取目录里面的文件 用fs.unlink删除文件后才能删除目录)
fs.rmdir('./aaaa', (erro) => {
if (erro) {
console.log(erro);
return;
}
console.log('rmdir 成功');
})
10. fs.createReadStream 读取文件
const fs = require('fs');
//todo 读取文件 括号内是文件路径
var readStream = fs.createReadStream('../demo md5/package.json');
var count =0;
var str = '';
readStream.on('data',(chunk)=>{
str+=chunk;
count++;
})
//标记读取文件末尾
readStream.on('end',()=>{
console.log(str);
console.log(count);
})
11. fs.createWriteStream 写入文件
const fs = require('fs');
//todo 写入文件
var str = '';
for(var i = 0; i<500;i++){
str += '我是数据库获取到的数据,保存111\n'
}
var writeStream = fs.createWriteStream('./upload/writeStream.txt');
writeStream.write(str);
// 标记文件末尾
writeStream.end();
// 前面必须有文件末尾 才能走到这一步
writeStream.on('finish',()=>{
console.log('完成');
})
应用:管道流 读取并写入大文件时使用(复制文件)
const fs = require('fs');
var readStream = fs.createReadStream('./upload/writeStream.txt');
//aaa必须是已经有了的目录 这里可以重命名文件
var writeStream = fs.createWriteStream('./upload/aaa/writeStream.txt')
readStream.pipe(writeStream);