流操作-stream
stream 分类
Readable Stream
fs.readFile("./index.txt", "utf-8", (err, content) => {
console.log("例子1: 读取的内容是[%s],", content);
});
const readStream = fs.createReadStream("./index.txt");
let content = "";
readStream.setEncoding("utf-8");
readStream.on("data", (chunk) => {
content += chunk;
});
readStream.on("end", (chunk) => {
console.log("例子2: 读取的内容是[%s]", content);
});
fs.createReadStream("./index.txt").pipe(process.stdout);
const end = function () {
process.stdout.write("]");
};
const fileStream = fs.createReadStream("./index.txt");
fileStream.on("end", end);
fileStream.pipe(process.stdout);
process.stdout.write("例子3:读取的内容是[");
Writeable Stream
const content = "hello world";
const fildepath = "./index.txt";
fs.writeFile(fildepath, content, (err) => {
console.log(err);
});
const content1 = "hello world 1";
const writeStream = fs.createWriteStream(fildepath);
writeStream.write(content1);
writeStream.end();
Duplex Stream
const net = require("net");
const opt = {
host: "127.0.0.1",
port: "3000",
};
const server = net.createServer((Socket) => {
Socket.on("data", (data) => {
console.log("客户端发送信息: ", data.toString());
});
Socket.write("hello world");
});
server.listen(opt.port, opt.host, () => {
console.log(server.address());
});
const client = net.connect(opt, () => {
client.write("我是 发送给客户端的信息");
});
client.on("data", (data) => {
console.log("客户端获取到服务端的响应: %s", data);
client.end();
});
Transform Stream
const zlib = require("zlib");
const gzip = zlib.createGzip();
const inFile = fs.createReadStream("./aa.txt");
const out = fs.createWriteStream("./aa.txt.gz");
inFile.pipe(gzip).pipe(out);
相关链接
https: