写的操作和读的操作很类似
异步
推荐用异步的
let fs = require('fs')
fs.writeFile('./test.txt',"晚饭吃啥?",{flag:'w',encoding:"utf-8"},function(err){
if(err){
console.log('写入出错了')
}else{
console.log('写入成功了')
}
})
我们希望不断的追加,所以我们这里写成:
let fs = require('fs')
fs.writeFile('./test.txt',"晚饭吃啥?",{flag:'a',encoding:"utf-8"},function(err){
if(err){
console.log('写入出错了')
}else{
console.log('写入成功了')
}
})
异步封装方法:
function myFsWriteFile(path,w){
return new Promise(function(resolve,reject){
fs.writeFile(path,w,{flag:'a',encoding:'utf-8'},function(err){
if(err){
reject('写入出错了')
}else{
resolve('写入成功了')
}
})
})
}
在没有的文件也可以:
function myFsWriteFile(path,w,wm){
return new Promise(function(resolve,reject){
fs.writeFile(path,w,{flag:wm,encoding:'utf-8'},function(err){
if(err){
reject(err)
}else{
resolve(err)
}
})
})
}
async function writeList(){
await myFsWriteFile('hello.html','<h3>你好</h3>','w')
await myFsWriteFile('hello.html',"<input type='text' />",'w')
}
writeList()
删除文件
语法:
fs.unlink(path,callback)
删除的操作尽量不要在生产环境下操作
win下回收站是找不到的不要瞎删
buffer
其他语言数组就像固定长度、设定好的内存,固定在那里;存取的速度是非常快的。不像这些语言效率这个高
为了提升数组的性能就有了buffer,buffer会在固定的内存空间开辟出一个固定大小的内存,而且buffer是让数组都连在一起放在内存的同一个地方
比如我们将数据放在存到Buffer里面:
首先
//存到缓存区里面
//将字符串转成buffer对象
var str = "helloworld"
let buf = Buffer.from(str)
console.log(buf)
结果(node xxx.js
):
<Buffer 68 65 6c 6c 6f 77 6f 72 6c 64>
很明显这是16进制的数据(因为2进制太长了,所以以16进制代表了2进制)
怎么从Buffer(缓存)里面取数据(提取我们想要的数据)?
//输出buffer的内容
console.log(buf.toString())
其实我一开始是不知道存什么数据
当我们不知道要存什么数据的时候,这个时候我们就需要**设置一个空的Buffer**
开辟一个空的Buffer,请参考
可以使用new Buffer
但是这个API要被废弃了,所以我们可以用Buffer.alloc
//开辟一个空的buffer(缓存区)
//alloc:
// size:设置大小(这个是10个数据)
let buf1 = Buffer.alloc(10)
那上面的这个10个数据到底是怎么存放的?
一个数据就代表是1个字节
//开辟一个空的buffer(缓存区)
//alloc:
// size:设置大小(这个是10个数据)
let buf1 = Buffer.alloc(10)
buf1[0] = 10
console.log(buf1)//查看buf1的
结果:
<Buffer 0a 00 00 00 00 00 00 00 00 00>
有10个数据,第一个就是我们存的10
其实还有一个API可以创建缓冲区
Buffer.allocUnsafe()(Unsafe表示不安全了)
let buf1 = Buffer.alloc(10)
//buf1[0] = 10
console.log(buf1)
let buf2 = Buffer.allocUnsafe(10)
console.log(buf2)
这个虽然不安全,但是效率来的高**Buffer.alloc**
开辟出空的缓存区,不仅要找到这个区间,我还要把里面的内容清除掉**Buffer.allocUnsafe**
给你开辟一个空间,你想怎么去操作都可以,里面有可能还有原来的数据Buffer.allocUnsafe
在大佬面前可以提取出数据修改数据,比如游戏金手指
Buffer的话,写JS神经网络用到的多。因为神经网络会用到大量的计算