buffer类,专门存放二进制数据的缓冲区
1.创建Buffer对象
Buffer.alloc(size[, fill[, encoding]]): 返回一个指定大小的 Buffer 实例,如果没有设置 fill,则默认填满 0
Buffer.allocUnsafe(size): 返回一个指定大小的 Buffer 实例,但是它不会被初始化,所以它可能包含敏感的数据
Buffer.allocUnsafeSlow(size)
Buffer.from(array): 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖)
Buffer.from(arrayBuffer[, byteOffset[, length]]): 返回一个新建的与给定的 ArrayBuffer 共享同一内存的 Buffer。
Buffer.from(buffer): 复制传入的 Buffer 实例的数据,并返回一个新的 Buffer 实例
Buffer.from(string[, encoding]): 返回一个被 string 的值初始化的新的 Buffer 实例
2.写入缓冲区
buf.write(string[, offset[, length]][, encoding])
3.读取缓冲区
buf.toString([encoding[, start[, end]]])
//创建缓冲区
let bf = Buffer.alloc(10);
//写入缓冲区
bf.write("abcdefg");
//读取缓冲区
console.log(bf.toString());
fs模块 (file system)
同步打开文件
fs.openSync(path[, flags[, mode]])
同步写入文件
fs.writeSync(fd, buffer[, offset[, length[, position]]])
同步保存关闭文件
fs.closeSync(fd)
//引入fs模块
let fs = require("fs");
//打开文件并获取文件标识
let fd = fs.openSync("test.txt", "w");
//通过文件标识,写入文件
fs.writeSync(fd, "this is a test!");
//通过文件标识,关闭
fs.closeSync(fd);
异步打开文件
fs.open(path[, flags[, mode]], callback)
异步写入文件
fs.write(fd, buffer[, offset[, length[, position]]], callback)
异步保存关闭文件
fs.close(fd, callback)
//引入fs模块
let fs = require("fs");
//打开文件并获取文件标识
fs.open("test.txt", "w", function (err, fd) {
//通过文件标识,写入文件
fs.write(fd, "this is a test!", function (err) {
//通过文件标识,关闭
fs.close(fd, function (err) {
if (!err) {
console.log("写入成功!")
}
else {
console.log(err)
}
})
})
});
简单文件写入--异步
fs.writeFile(file, data[, options], callback)
//引入fs模块
let fs = require("fs");
//异步简单文件写入
fs.writeFile("test.txt", "this is a simple test!!", function (err) {
if (!err) {
console.log("写入成功!")
}
else {
console.log(err);
}
});
简单文件写入--同步
fs.writeFileSync(file, data[, options])
//引入fs模块
let fs = require("fs");
//异步简单文件写入
fs.writeFileSync("test.txt", "this is a simple test!!");
console.log("写入成功!")
流文件写入
1.创建写入流对象
2.可以注册open/close事件
3.关闭写入流对象
//引入fs模块
let fs = require("fs");
//流文件写入
let ws = fs.createWriteStream("text.txt");
//文件打开时触发
ws.on("open", function () {
console.log("file open!");
});
//文件关闭时触发
ws.on("close", function () {
console.log("file close!")
});
ws.write("this is a test!");
ws.write("this is a test!");
ws.write("this is a test!");
//关闭流
ws.end();
简单文件读取
fs.readFile(path[, options], callback)
//引入fs模块
let fs = require("fs");
//简单文件读取
fs.readFile("text.txt", function (err, data) {
console.log(data.toString());
})
流文件读取
//引入fs模块
let fs = require("fs");
//流文件读取
let rs = fs.createReadStream("text.txt");
rs.on("data", function (data) {
console.log(data.toString())
})
//可以通过pipe直接输出到可写流
// rs.pipe(WritableStream)