Node.js -- Stream 使用小例 ( 流運用 :讀取、寫入、寫出、拷貝)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

Stream 是一個抽象接口,Node 中有很多對象實現了這個接口。例如,對http 服務器發起請求的request 對象就是一個 Stream,還有stdout(標準輸出)。

Node.js,Stream 有四種流類型:

  • Readable?- 可讀操作。

  • Writable?- 可寫操作。

  • Duplex?- 可讀可寫操作.

  • Transform?- 操作被寫入數據,然后讀出結果。

所有的 Stream 對象都是 EventEmitter 的實例。常用的事件有:

  • data?- 當有數據可讀時觸發。

  • end?- 沒有更多的數據可讀時觸發。

  • error?- 在接收和寫入過程中發生錯誤時觸發。

  • finish?- 所有數據已被寫入到底層系統時觸發。

?

第一例、從已有文件中讀取:

?

event.js :?

var fs = require("fs");
var data = '';// 創建可讀流
var readerStream = fs.createReadStream('input.txt');// 設置編碼為 utf8。
readerStream.setEncoding('UTF8');// 處理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {data += chunk;
});readerStream.on('end',function(){console.log(data);
});readerStream.on('error', function(err){console.log(err.stack);
});console.log("程序執行完畢");

?

第2例、讀取并寫出到文件:

?

stream.js :

var fs = require("fs");
var data = '這是我的博客地址:https://blog.csdn.net/jiangyu1013\n';var writerStream = fs.createWriteStream('output.txt');writerStream.write(data,'UTF8');writerStream.end();writerStream.on('finish', function() {console.log("哈哈,寫入完成啦。");
});writerStream.on('error', function(err){console.log(err.stack);
});console.log("程序執行完畢了哦。");

第3例、拷貝文件到新文件:

?

?pipe.js :

var fs = require("fs");var readerStream = fs.createReadStream('output.txt');var writerStream = fs.createWriteStream('output2.txt');readerStream.pipe(writerStream);console.log("程序執行完畢啦\n");

?

深入學習資料:

node.js 中文網:http://nodejs.cn/api/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

李洋瘋狂C語言之有關“you are come from shanghai”逆序(二)

今天將指針和函數全部學完了&#xff0c;之前這題的做法&#xff0c;現在看來有點繁瑣&#xff0c;于是乎做了一些修改&#xff0c;下面是新的代碼 //you are from shanghai逆序#include <stdio.h> #include <string.h> //下面要用到strlenvoid reverse(c…

sync - 清空文件系統緩沖區

總覽 (SYNOPSIS) sync [OPTION] 描述 (DESCRIPTION) 強迫把更改的塊寫入磁盤&#xff0c; 并更新超級塊。 --help顯示幫助然后終止。--version顯示版本信息然后終止。 轉載于:https://www.cnblogs.com/fanweisheng/p/11101219.html

學會用好 Visual Studio Code

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Visual Studio Code是個牛逼的編輯器&#xff0c;啟動非常快&#xff0c;完全可以用來代替其他文本文件編輯工具。又可以用來做開發&…

蘇嵌點滴(二)

今天把指針和函數講完了&#xff0c;這些都還能接受&#xff0c;之后老師和我們講了遞歸&#xff0c;有點難度。 晚上電腦還出了點狀況&#xff0c;一個晚自習全用來重裝系統和學習軟件套裝X_X&#xff0c;調試完已經接近下課&#xff0c;遞歸還沒來得及看。 放學后&#xff…

Maven學習總結(五)——聚合與繼承

2019獨角獸企業重金招聘Python工程師標準>>> Maven學習總結(五)——聚合與繼承 一、聚合 如果我們想一次構建多個項目模塊&#xff0c;那我們就需要對多個項目模塊進行聚合 1.1、聚合配置代碼 1 <modules> 2 <module>模塊一</module> 3 …

19-6/28作業:100以內偶數求和

?作業要求 ?分析思路 在循環里面增加約束&#xff0c;使累加1變成累加2 ?do-while循環代碼 public class GaoSiFor { public static void main(String[] args) { //定義兩個變量 int sum 0; int i 0; //開始循環 do{ //…

Visual Studio Code 常用快捷鍵

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 一、常用快捷鍵 編輯器與窗口管理 打開一個新窗口&#xff1a; CtrlShiftN 關閉窗口&#xff1a; CtrlShiftW 新建文件 CtrlN 文件之間切…

李洋瘋狂C語言之用遞歸解決李白喝酒問題(附填空題解法)

這是14年藍橋杯的一道填空題 題目&#xff1a;“李白街上走&#xff0c;提壺去買酒&#xff0c;遇店加一倍&#xff0c;見花喝一斗”&#xff0c; 途中&#xff0c;遇見5次店&#xff0c;見了10此花&#xff0c;壺中原有2斗酒&#xff0c;最后剛好喝 完酒&#xff0c;要求最…

coco creator編輯動畫坑之拖圖片

如圖所示&#xff0c;批量選中多張圖片之后&#xff0c;拖到右下角的框中&#xff0c;發現有時候可以有時候不行。這個我覺得是個軟件的bug 后來經過測試發現只有在粉紅色圈的高度才可以正確放入圖片&#xff0c;否則都放不了。轉載于:https://www.cnblogs.com/codeDevotee/p/1…

Spring MVC常用注解說明

2019獨角獸企業重金招聘Python工程師標準>>> 使用Spring MVC的注解及其用法和其它相關知識來實現控制器功能。02 之前在使用Struts2實現MVC的注解時&#xff0c;是借助struts2-convention這個插件&#xff0c;如今我們使用Spring自帶的spring-webmvc組件來實現同…

Ubuntu12.10中安裝ati顯卡驅動amd driver 13.1

1. 先安裝依賴庫 [plain] view plaincopyprint?sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases fakeroot libqtgui4 debhelper debconf libstdc6 dkms libqtgui4 libelfg0 linux-headers-generic 2. 如果是64位系統&#xff0c;需要安裝3…

李洋瘋狂C語言之用遞歸解決李白喝酒問題(二)

之前用遞歸求出了多少種情況&#xff0c;如果要打印出所有的結果&#xff0c;就需要一個數組來存放可能的情況&#xff1a; /****************************************************** 題目&#xff1a;“李白街上走&#xff0c;提壺去買酒&#xff0c;遇店加一倍&#xff0c;…

vue.js 三種方式安裝 ( vue-cli ) 、安裝詳解、創建項目

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 Vue.js&#xff08;讀音 /vju?/, 類似于 view&#xff09;是一個構建數據驅動的 web 界面的漸進式框架。Vue.js 的目標是通過盡可能簡單…

C學習筆記:基礎

C 語言是一種面向過程的高級語言。 運行速度與匯編語言編寫的代碼運行速度幾乎一樣。C 語言的源碼文件擴展名為 .c 例如 hello.c 。 概述 C 語言有三套標準分別是 C89 C99 C11&#xff0c;目前最常用的是 C99 標準。 C 編譯器&#xff0c;寫在源文件中的源代碼需要編譯&#xf…

spring-boot

1,創建springboot 工程 2.導入你所需要的包, (這篇只是簡單介紹一下,沒導入太過復雜的包)Developer tools Sprig Boot DevTools LombokWed Spring Wed Starter 轉載于:https://www.cnblogs.com/lxx-1843693653/p/11104622.html

李洋瘋狂C語言之合法幀

題目: 輸入一個字符串,同時輸入幀頭和幀尾(可以是多個字符),將該字符串中合法的幀識別出來. 提示:幀頭和幀尾分別是head和tail 字符串”asdheadhauboisoktail”中headhauboisoktail是合法幀 #include <stdio.h> #include <string.h> #include <stdlib.h>ch…

vuex 最簡單、最詳細的入門文檔

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 如果你在使用 vue.js , 那么我想你可能會對 vue 組件之間的通信感到崩潰 。 我在使用基于 vue.js 2.0 的UI框架 ElementUI 開發網站的時…

科目三路考操作要點

一踏&#xff08;離合器&#xff09;二掛&#xff08;擋&#xff09;三撥&#xff08;左轉向燈&#xff09;四看&#xff08;左右鏡及側頭觀察周邊情況&#xff09;五按&#xff08;喇叭&#xff09;六松&#xff08;閘&#xff0c;即手制動&#xff09; 在科目三考試途中的注…

10種頂級javascript框架比較-The Top 10 Javascript MVC Frameworks

轉載于&#xff1a;http://codebrief.com/2012/01/the-top-10-javascript-mvc-frameworks-reviewed/ Gordon L. Hempton是西雅圖的一位黑客和設計師&#xff0c;他花費了幾個月的時間研究和比較了12種流行的JavaScript MVC框架&#xff0c;并在博客中總結了每種框架的優缺點&am…

數據結構之順序表(一)

有關順序表&#xff0c;由于代碼太長&#xff0c;我將分成2部分&#xff0c;這邊是頭文件SeqList.h和主函數&#xff1a; #ifndef __SEQLIST_H__ #define __SEQLIST_H__#define FALSE -1 #define TRUE 0#define INIT_SIZE 100 #define INCRESS_SIZE 20typedef int Seq…