文件操作
完整读文件
fs.readFile('./fs.txt', (err, data) => { // 异步读取
console.log(err); // 如果没有错误则为null,否则不为null
console.log(data.toString()); // buffer转字符串
});
let data = fs.readFileSync('./fs.txt'); // 同步读取(快)
console.log(data.toString());
完整写文件
fs.writeFile('./fs1.txt', JSON.stringify({ title: '周六' }), err => {
console.log(err);
});
fs.writeFileSync('./fs.txt', '但愿人长久千里共婵娟');
追加写
fs.appendFile('./fs1.txt', JSON.stringify({ title: '周六' }), err => {
console.log(err);
});
// 部分读文件
// flag:r表示读,w表示写,a表示追加写
// mode:文件的操作权限,0777,默认是0666
/*
1:执行权限
2:写权限
4:读权限
第一位默认为0
第二位表示:文件或目录所有者的权限
第三位表示:文件或目录所有者所属用户分组的权限
第四位表示:其他人的权限
*/
existsSync 用来判断文件是否存在,存在则返回true,否则为false
if (fs.existsSync('./fs.txt')) {
fs.open('./fs.txt', 'r', (err, fd) => {
let stat = fs.statSync('./fs.txt'); //同步读取文件的信息
let buf = new Buffer(stat.size);
// 第一个参数fd是文件描述符,用来表示当前正在操作的文件
// 第二个参数buffer是用来存储读取的信息的
// 第三个参数offset表示从buf对象的第几个字节开始写入
// 第四个参数length表示从文件中读取几个字节
// 第五个参数position表示从文件的第几个字节开始读,默认为0
//
fs.read(fd, buf, 0, 5, 1, (err, bytes, buffer) => {
console.log(err);
console.log(bytes);
console.log(buf.toString());
});
fs.closeSync(fd); //主动关闭文件,默认是可以自动关闭文件的
});
}
// 删除文件
fs.unlinkSync('./fs1.txt');
判断当前文件是目录还是文件
let stat = fs.statSync('./demo');
console.log(stat.isDirectory()); //如果为true表示目录,否则不是
stat.isFile(); //如果为true表示文件,否则不是
// 小结:
// fs.readFile 读文件
// fs.writeFile 写文件
// fs.existsSync 判断文件是否存在
// fs.unlinkSync 删除文件
// fs.statSync 获取文件的状态