写的操作和读的操作很类似
异步
推荐用异步的
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] = 10console.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] = 10console.log(buf1)let buf2 = Buffer.allocUnsafe(10)console.log(buf2)
这个虽然不安全,但是效率来的高**Buffer.alloc**开辟出空的缓存区,不仅要找到这个区间,我还要把里面的内容清除掉**Buffer.allocUnsafe**给你开辟一个空间,你想怎么去操作都可以,里面有可能还有原来的数据Buffer.allocUnsafe在大佬面前可以提取出数据修改数据,比如游戏金手指
Buffer的话,写JS神经网络用到的多。因为神经网络会用到大量的计算
