一、fs的三种读取文件内容的方式
const fs = require('fs');
const res1 = fs.readFileSync('../test.txt', {
encoding: 'utf-8'
});
console.log(res1);
fs.readFile('../test.txt', {
encoding: 'utf-8'
}, (err, data) => {
if(err){
console.log('error message:', err);
return;
}
console.log('读取文件结果:', data);
})
fs.promises.readFile('../test.txt', {
encoding: 'utf-8'
}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
二、fs获取文件标识符
const fs = require('fs');
fs.open('../test.txt', (err, fd) => {
if(err){
console.log(err);
return false;
}
console.log(fd);
fs.fstat(fd, (err, stats) => {
if(err){
console.log(err);
return false;
}
console.log(stats);
})
fs.close(fd);
})
三、fs文件写入及选项参数
const fs = require('fs');
const text = 'hello node!';
fs.writeFile('../abc.txt', text, {
encoding: 'utf-8',
flag: 'w'
}, (err) => {
if(err){
console.log(err);
return;
}
console.log('write succes!');
})
fs.writeFile('../abc.txt', text, {
encoding: 'utf-8',
flag: 'a'
}, (err) => {
if(err){
console.log(err);
return;
}
console.log('append succes!');
})
四、fs对文件夹进行相关操作
const fs = require('fs');
fs.mkdir('./test-dir', (err => {
console.log(err);
}));
fs.readdir('./test-dir', (err, files) => {
if(err){
console.log(err);
return;
}
console.log(files);
})
fs.readdir('./test-dir', { withFileTypes: true, }, (err, files) => {
if(err){
console.log(err);
return;
}
console.log(files);
files.forEach(f => {
if(f.isDirectory()){
console.log(`这是一个文件夹,名称为:${f.name}`);
}else{
console.log(`这是一个文件,名称为:${f.name}`);
}
})
})
function readDirectory(path){
fs.readdir(path, {
withFileTypes: true
}, (err, files) => {
files.forEach(f => {
if(f.isDirectory()){
readDirectory(`${path}/${f.name}`)
}else{
console.log(`这是一个文件,名称为:${f.name}`);
}
})
})
}
fs.rename('./test-dir', 'test-dir-1', (err) => {
console.log(err);
})