Node.jsストリーム(ストリーム)

黄舟
黄舟オリジナル
2017-01-17 15:49:491076ブラウズ

学習ポイント:

ストリームからデータを読み取る

ストリームに書き込む

パイプラインストリーム

チェーンストリーム

Node.jsストリーム(ストリーム)

ストリームからデータを読み取る

ケース: main.js

[code]var fs = require('fs');
var data = '';
// 创建可读流
var readerStream = fs.createReadStream('input.txt');
// 设置utf8编码
readerStream.setEncoding('UTF8');
// 处理流事件
// data 当有数据可读时触发
readerStream.on('data', function (chunk) {
    data += chunk;
});
// end 当没有数据读时触发
readerStream.on('end', function () {
    console.log(data);
});
// error  在接收和写入过程中发生错误时触发。
readerStream.on('error', function (err) {
    console.log(err.stack);
});
console.log('程序执行完毕。');

Node.jsストリーム(ストリーム)

ストリームに書き込む

ケース: main2.js

[code]var fs = require('fs');
var data = '我是谁?';
// 创建写入流
var writeStream = fs.createWriteStream('ouput.txt');
// 编码
writeStream.write(data, 'UTF8');
// 标记文件末尾
writeStream.end();
// 处理流事件
// finish 所有数据已被写入到底层系统时触发。
writeStream.on('finish', function () {
    console.log('写入完成');
});
// error 在读入和写入数据是触发
writeStream.on('error', function (err) {
    console.log(err.stack);
});
console.log('程序执行完毕。');

Node.jsストリーム(ストリーム)

パイプフロー

あるストリームから別のストリームにデータを入力する

ケース: Pipe.js

[code]var fs = require('fs');
// 创建可读流
var readerStream = fs.createReadStream('input.txt');
// 创建写入流
var writeStream = fs.createWriteStream('ouput.txt');
// 管道读写
readerStream.pipe(writeStream);
console.log('程序执行完毕。');

Node.jsストリーム(ストリーム)

Cha流れの中で


は複数の入出力ストリームを接続するための

ケース: 圧縮ファイルexpress.js

[code]var fs = require('fs');
var zlib = require('zlib');
// 将 input.txt 压缩为 input.gz
fs.createReadStream('input.txt')
    .pipe(zlib.createGzip())
    .pipe(fs.createWriteStream('input.gz'));
console.log('文件压缩完毕');

Node.jsストリーム(ストリーム)

ケース: 解凍されたファイルdecompress.js

[code]var fs = require('fs');
var zlib = require('zlib');
// 解压 input.gz 为 input.gz.txt
fs.createReadStream('input.gz')
    .pipe(zlib.createGunzip())
    .pipe(fs.createWriteStream('input.gz.txt'));
console.log('解压文件完毕');

Node.jsストリーム(ストリーム)

上記はNode.js Stream(Stream)の内容です、注意してくださいその他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) にアクセスしてください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。