同步文件写入
// 引入fs模块
const fs = require('fs');
// 同步打开文件(可写)
const fd = fs.openSync('./show.txt', 'w');
// 同步向该文件写入内容并保存
fs.writeSync(fd, 'hello world');
// 同步关闭文件
fs.closeSync(fd);
异步文件写入
// 引入fs模块
const fs = require('fs');
// 异步打开文件(可写)
fs.open('./show.txt', 'w', (error, fd) => {
if (error) {
console.log(error);
return;
}
// 异步向该文件写入内容并保存
fs.write(fd, 'hello world', (error) => {
if (error) {
console.log(error);
return;
}
// 异步关闭文件
console.log('写入成功');
fs.close(fd, (error) => {
if(error) {
console.log(error);
return;
}
console.log('文件已关闭');
});
});
});
简单文件写入(异步,省略了打开和关闭步骤)
const fs = require('fs');
fs.writeFile('./show.txt', 'hello world', {flag: 'a'}, (error) => {
if (error) {
console.log(error);
return;
}
console.log('文件写入成功');
});
流式文件写入
const fs = require('fs');
// 创建一个可写流
const ws = fs.createWriteStream('./show.txt');
ws.once('open', () => {
console.log('流已打开');
});
ws.once('close', () => {
console.log('流已关闭');
});
ws.write('hello world');
ws.write('hello world');
ws.write('hello world');
ws.write('hello world');
ws.close();
简单文件读取
const fs = require('fs');
fs.readFile('./show.txt', (error, data) => {
if (error) {
console.log(error);
return;
}
console.log(data.toString()); // data是一个buffer类型数据
});
流式文件读取(适用大文件)
const fs = require('fs');
const rs = fs.createReadStream('./show.txt');
rs.on('data', (data) => {
console.log(data.toString());
});
流式文件读取并写入
const fs = require('fs');
const rs = fs.createReadStream('./test.txt');
const ws = fs.createWriteStream('./show.txt');
rs.pipe(ws);
检验文件是否存在
const fs = require('fs');
const isExist = fs.existsSync('./show.txt');
console.log(isExist); // boolean
删除文件
const fs = require('fs');
fs.unlinkSync('./show.txt');
获取文件信息
const fs = require('fs');
fs.stat('./show.txt', (error, stat) => {
console.log(stat);
});
读取目录中的所有文件
const fs = require('fs');
fs.readdir('.', (error, files) => {
console.log(files);
});
截断文件
const fs = require('fs');
fs.truncateSync('./show.txt', 5);
创建文件夹
const fs = require('fs');
fs.mkdirSync('hello');
删除文件夹
const fs = require('fs');
fs.rmdirSync('hello');
文件重命名(剪切)
const fs = require('fs');
fs.renameSync('./show.txt', '../show1.txt');
监听文件变化
const fs = require('fs');
fs.watchFile('./show.txt', (curr, prev) => {
console.log(curr.size);
console.log(prev.size);
});