一.文件写入
let fs = require("fs");
// 这里德flag参数为比较重要德参数,但同步会直接变成回调地狱,就很恐怖,因此需要使用异步进行封装
fs.writeFile(
"test.txt",
"吃吧!?",
{ flag: "a", encoding: "utf-8" },
(err) => {
// console.log(err);
if (err) {
console.log("内容出错");
} else {
console.log("写入内容成功");
}
}
);
// 这里直接使用异步操作,确保每个语句都是顺序执行
function writefs(path, content) {
return new Promise(function (resolve, reject) {
fs.writeFile(path, content, { flag: "a", encoding: "utf-8" }, (err) => {
// console.log(err);
if (err) {
// console.log("内容出错");
reject(err);
} else {
// console.log("写入内容成功");
resolve(err);
}
});
});
}
async function writeList () {
await writefs('lc.txt','1今天是不错地日子');
await writefs('lc.txt','2今天是不错地日子');
await writefs('lc.txt','3今天是不错地日子');
await writefs('lc.txt','4今天是不错地日子');
}
writeList();
通过Promise可以实现顺序代码执行,对其进行封装,便于程序实现,同时告别回调地狱。
二.文件删除
let fs = require('fs');
// 删除
fs.unlink('lc.txt',function(){
console.log("成功删除!");
})
基本格式,文件路径+回调函数,直接删除就可。
三.Buffer
// 解决数组不能进行二进制数据地操作,解决数组地效率太低了
// js地数组不像java等语言效率很高
// buffer内存空间开辟固定大小的内存
var str = 'hello,world'
let buf = Buffer.from(str);
// 以十六进制的形式显示二进制的数据(实际为2进制)[因此最大为255,否则溢出]
console.log(buf);
// 输出buffer的内容(转为字符串直接输出)
console.log(buf.toString());
// 开辟一个空的buffer(缓存区)
let buf1 = Buffer.alloc(10)
buf1[0] = 10;
console.log(buf1);
Buffer的执行效率会比普通的JS数组高出很多,以二进制形式进行数据存储,但是需要注意数据的溢出(在Node里面会以16进制对数据进行转化处理,但实际上依然是2进制数据存储)