res:
$ node buf4 abc abc buf42.js var buf1 = Buffer.from("abc"); //var buf2 = Buffer.from(buf1); var buf2 = Buffer.from("abc"); console.log(buf1.toString(),buf2.toString());//abc abc console.log(buf1 == buf2);//false console.log(buf1 === buf2);//false console.log(buf1.toString() == buf2.toString());//true console.log(Buffer.compare(buf1, buf2));//0 , 相同为0,不同为-1res:
$ node buf42 abc abc false false true 0 buf5.js var str = "abc中文"; var buf = Buffer.from(str); console.log(buf); console.log(str.length); console.log(buf.length); console.log(Buffer.byteLength(buf));res:
$ node buf5 <Buffer 61 62 63 e4 b8 ad e6 96 87> 5 9 9 buf6.js var str = "abc"; var arr = []; for(var i = 0; i < str.length; i++){ arr.push(Buffer.from(str[i]));//61 62 62 arr[buf1,buf2,buf3] } console.log(arr); console.log(Buffer.concat(arr));res:
$ node buf6 [ <Buffer 61>, <Buffer 62>, <Buffer 63> ] <Buffer 61 62 63> buf7.jsBuffer.isBuffer() 判断是否是Buffer
var str = "abc"; console.log(Buffer.isBuffer(str)); var buf = Buffer.from(str); console.log(Buffer.isBuffer(buf));res:
$ node buf7 false true buf8.js.equals()判断buffer是否相等
const buf1 = Buffer.from('ABC'); const buf2 = Buffer.from('414243', 'hex');//ABC const buf3 = Buffer.from('ABCD'); // 输出: true console.log(buf1.equals(buf2)); // 输出: false console.log(buf1.equals(buf3));res:
$ node buf8 true false buf9.js /* buf.includes/indexOf */ var buf = Buffer.from('abcdef'); console.log(buf.includes("def"));//是否包含"def" console.log(buf.indexOf("def")); //是否包含"def",有的话输出开始下标,没有的话输出-1;res:
$ node buf9 true 3 buf10.js /* buf.includes/indexOf */ var buf = Buffer.from('abcdef'); console.log(buf.keys()); console.log(buf.values()); //buf是一个对象,需循环输出key和value console.log("------keys------------"); for(var n of buf.keys()){ console.log(n); } console.log("------values------------"); for(var n of buf.values()){ console.log(n,String.fromCharCode(n)); }res:
$ node buf10 {} {} ------keys------------ 0 1 2 3 4 5 ------values------------ 97 'a' 98 'b' 99 'c' 100 'd' 101 'e' 102 'f' 5.fs 文件目录 文件读写
fs.readFile 读
fs.writeFile 写
fs.appendFile 添加内容
fs.unlink 删除
fs.copyFile 复制
fs.mkdir 创建
fs.rmdir 删除
fs.readdir 读
文件或者目录是否存在
fs.exists 废弃
fs.access
判断是否是文件或者目录
fs.stat(path,function(stats){ stats.isFile()/isDirectory() }) 监听fs.watch(filename[, options][, listener])
fs.watchFile(filename[, options], listener)
写比读先执行
var fs = require("fs"); //readFile/Sync //读 fs.readFile("a.txt",function(err,data){ console.log(1,err,data); }); //写,找到a.txt没有的话创建,添加"aaa"到a.txt fs.writeFile("a.txt","bbb",function(err){ console.log(2,err); //返回null,表示没有错误 });res:
$ node fs1 2 null 1 null <Buffer 62 62 62> fs2.js//copyFile("源文件","目标文件",回调函数)
var fs = require("fs"); //拷贝 1、先读 2、再写 //读 /*fs.readFile("a.txt",function(err,data){ if(err){ console.log("读取文件失败"); } else { //写 fs.writeFile("b.txt",data,function(err){ if(err){ console.log("拷贝失败"); } else { console.log("拷贝成功"); } }); } }); */ //copyFile("源文件","目标文件",回调函数) fs.copyFile("a.txt","b.txt",function(err){ if(err){ console.log("拷贝失败"); } else { console.log("拷贝成功"); } });rse:
$ node fs2 拷贝成功 fs3.js//appendFile 创建文件或者追加
var fs = require("fs"); //appendFile 创建文件或者追加 fs.appendFile("b.txt","append",function(err){ console.log(err); });res:
$ node fs3 null fs4.jsunlink 删除文件 不能删除目录
var fs = require("fs"); //unlink 删除文件 不能删除目录 fs.unlink("b.txt",function(err){ console.log(err); });res:
$ node fs4 null fs51.js//fs.mkdir()创建目录
var fs = require("fs"); //创建目录 fs.mkdir("abc", function(err){ console.log(err); });res:
$ node fs51 null fs52.js//删除目录fs.rmdir
var fs = require("fs"); //删除目录 fs.rmdir("abc", function(err){ console.log(err); });res:
$ node fs52 null fs53.js//读取目录fs.readdir
var fs = require("fs"); //读取目录 fs.readdir("abc", function(err,res){ console.log(err,res); });res:
$ node fs53 null [ 'youarebeautiful' ] fs61.jsfs.exists
//判断文件和目录
//文件状态 文件、目录是否存在 是文件 还是目录
res:
$ node fs61 true fs62.jsfs.access
var fs = require("fs"); //判断文件和目录 //文件状态 文件、目录是否存在 是文件 还是目录 fs.access("a.txt", (err) => { console.log(err); });