• P9

      node.js入門buffer類的使用詳 文檔

    熟悉JavaScript的童鞋應該對Node.js都不陌生,沒錯Node.js是一個基于ChromeJavaScript運行時建立的平臺,用于方便地搭建響應速度快、易于擴展的網絡應用。Node.js?使用事件驅動,?非阻塞I/O?模型而得以輕量和高效,非常適合在分布式設備上運行數據密集型的實時應用。正是由于Node.js的這些特性使得其在如今的編程中越來越受歡迎,對于新手程序猿來說很有必要掌握Node.js技術。本文小編就將為大家介紹Node.js中Buffer類的使用,希望對大家學習Node.js有幫助吧。???????其實,Buffer類在Node.js的使用中,經常會用到,特別是在用Node.js做服務端開發時,http、tcp、udp、文件io等等類型的操作,都離不開Buffer類。Buffer是什么Buffer代表一個緩沖區,存儲二進制數據,是字節流,在網絡傳輸時,就傳輸的這種字節流。編碼格式雖然一般的字符串是有編碼格式的,比如UTF-8。但Buffer是沒有編碼格式的。兩者可以相互轉換,轉換時必須指定編碼格式。在http模塊中,http.createServer方法需要的回調函數的原型是:function(req,res)????這個回調的第一個參數,req,類型是http.IncomingMessage,而http.IncomingMessage是一個只讀的流,實現了Readable接口,stream.Readable讀到的數據(監聽data事件可以處理),就是Buffer對象,是字節流。而我們在程序中使用時,經常是要轉換為String。反過來,res(類型http.ServerResponse,可寫的流,實現了Writable接口)有個方法setDefaultEncoding,用來設置流的編碼格式,在write數據時,會使用指定的編碼格式來編碼數據,然后發送給客戶端。這就是說,網絡傳輸的是Buffer,程序需要處理String,Buffer和String之間可以轉換。Buffer有toString方法,可以按指定的編碼格式將字節流轉換為String。在文件系統模塊中,fs.createWriteStream和fs.createReadStream兩個方法都有一個可選參數options,可以指定defaultEncoding,這里指定的編碼格式,也是用于在Buffer和String之間轉換的。目前我們在Node.js里,Buffer在轉換為字符串時,toString方法的第一個參數就是編碼類型,支持常見的編碼格式:utf8,多字節編碼的Unicode字符,大多數文檔和網頁采用這種編碼格式ascii,8bit編碼,一個字符占1個字節utf16le,小端編碼的unicode字符utf16be,大端編碼的unicodeucs2,unicode編碼,每個字符占兩個字節base64,Base-64字符串編碼hex,每個字節編碼為兩個十六進制字符假如你不確認某個編碼格式是否正確,可以使用Buffer.isEncoding(encoding)方法來測試。在使用Buffer的toString方法時,如果你不指定編碼格式,則默認使用utf8來轉換。toString原型:buf.toString([encoding][,start][,end])第一個參數是編碼格式,第二個是開始位置(0到buf.length-1),第三個是結束位置(不包含這個索引位置的數據)。創建一個Buffer實例對于Buffer實例的創建,使用new操作符,有四種方法可實現:newBuffer(size),創建一個指buffer定大小的buffernewBuffer(array),根據一個字節數組來創建一個buffernewBuffer(str[,encoding]),根據一個字符串和編碼格式創建buffer,不指定編碼時默認使用utf8newBuffer(buffer),根據buffer實例創建一個新的buffer比如下面的代碼可以創建Buffer的實例:varbuf1=newBuffer(256);varbuf2=newBuffer("HelloBuffer");varbuf3=newBuffer([0x65,0x66,0x67]);varbuf4=newBuffer(buf2);但有一點需要說明的是,使用newBuffer(size)分配的緩沖區,是未初始化的。那塊內存里,可能什么都有。試試下面的代碼:varbuf1=newBuffe

    麥子學院 2016-05-24   457   0

    AdnroidTextView屬性詳和常用特效特效用法 經驗

    Adnroid之TextView屬性詳解和常用特效特效用法

    jopen 2013-02-01   25440   0

    IOS開發UIScrollView控件詳 經驗

    IOS開發之UIScrollView控件詳解

    jopen 2014-01-24   44610   0

    移動Web觸摸和指針事件詳 經驗

    本文詳細介紹了蘋果的觸摸事件和微軟的指針事件之間的不同,可以了解兩者間的差別。

    jopen 2015-06-16   38005   0
    P6

      ios_數據存儲_fmdb_詳 文檔

    FMDB是用于進行數據存儲的第三方的框架,它與SQLite與Core Data相比較,存在很多優勢。 FMDB是面向對象的,它以OC的方式封裝了SQLite的C語言API,使用起來更加的方便,不需要過多的關心數據庫操作的知識。但是它本身也存在一些問題,比如跨平臺,因為它是用oc的語言封裝的,所以只能在ios開發的時候使用,如果想實現跨平臺的操作,來降低開發的成本和維護的成本,就需要使用比較原始的SQLite。

    evan123 2016-05-20   452   0

    Android自動化壓力測試工具:Monkey詳 經驗

    Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。

    openkk 2012-07-29   58904   0

    PHPMVC框架演進過程詳 經驗

    根據平時練習一個增刪改查的功能進行,即在一個php文件中完成,對數據庫的連接操作 及在php文件中展示html代碼。html提交到當前頁面的php部分進行處理入庫動作。

    jopen 2013-06-05   42571   0
    PHP   MVC   PHP開發  

    iOS開發正則表達式 經驗

    更新提示:本教程被James Frost更新到了iOS8和swift。Tutorial團隊成員的Soheil Azarpour完成最初發布。正則表達式(廣為所知的“regex”)是一個字符串或一個字符序列來說明一種模式,把它作為一個搜索字符串-非常強大! 在一個文本編輯器或文字處理器中普通的舊式搜索只允許你進行簡單的匹配。正則表達式可以實現這樣簡單的搜索,它還能讓你更進一步地按模式搜索,例如,在兩個數字后跟一個字母,或者,三個字母后跟一個連字符。

    n342 2015-04-29   69786   0

    Android簽名機制---簽名過程詳 經驗

    、前言 又是過了好長時間,沒寫文章的雙手都有點難受了。今天是圣誕節,還是得上班。因為前幾天有一個之前的同事,在申請微信SDK的時候,遇到簽名的問題,問了我一下,結果

    jopen 2016-01-19   17329   0

    Android應用開發PNG、IconFont、SVG圖標資源優化詳 經驗

    在我們App開發中大家可能都會有過如下痛疾(程序員和設計妹妹注意嘍): 好多小的圖標好煩人,又占體積還要考慮分辨率,一拉伸就模糊等。 同一個圖標不同狀態還有不同顏色的多張。 總是幻想IOS、Android、Web等對于一個圖標只切一次圖多好。

    jopen 2015-12-27   38044   0

    linux命令top該怎么用?top命令詳 經驗

    linux命令之top該怎么用?top命令詳解:top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。如果在前臺執行該命令,它將獨占前臺顯示...

    aitestwi 2016-01-25   9321   0
    Linux  
    P16

      sdn 網絡系統 mininet 與 api 詳 文檔

    Mininet 是輕量級的軟件定義網絡系統平臺,同時提供了對 OpenFlow 協議的支持。本文主要介紹了 Mininet 的相關概念與特性,并列舉的 Mininet 自定義網絡及參數網絡拓撲示例,以及相關重要執行文件的分析,幫助用戶更好的理解與使用 Mininet 技術。

    fanlanming 2016-12-04   582   0
    P13

      hadoop開發案例 Cloudera Manager詳 文檔

    Cloudera Manager介紹和安裝ClouderaManager(簡稱CM)用于管理CDH4集群,可進行節點安裝、配置、服務配置等,提供Web窗口界面提高了Hadoop配置可見度,而且降低了集群參數設置的復雜度。

    玫瑰情書 2014-06-18   693   0

    jQuery入門筆記(三)事件詳 經驗

    在JavaScript 有一個非常重要的功能,就是事件驅動。如果你的網頁需要與用戶進行交互的話,就不可能不用到事件。它在頁面完全加載后,用戶通過鼠標或鍵盤觸發頁面中綁定事件的元素即可觸發。jQuery為開發者更有效率的編寫事件行為,封裝了大量事件方法供我們使用。

    jopen 2015-12-31   30671   0

    JavaScript對象序列化詳 經驗

    對象序列化是指將對象的狀態轉換為字符串(來自我這菜鳥的理解,好像有些書上也是這么說的,淺顯易懂!);

    jopen 2016-01-17   21253   0

    Android應用開發所有動畫使用詳 經驗

    今天來一發Android應用的各種Animation大集合。英文厲害的請直接移步參考Android Developer。

    黑色的火焰 2015-08-12   36373   0

    React 實踐心得:react-redux connect 方法詳 經驗

    Redux 是「React 全家桶」中極為重要的一員,它試圖為 React 應用提供「可預測化的狀態管理」機制。Redux 本身足夠簡單,除了 React,它還能夠支持其他界面框架。所以如果要將 Redux 和 React 結合起來使用,就還需要一些額外的工具,其中最重要的莫過于 react-redux 了。

    ogrd2468 2016-08-19   27376   0

    android布局詳layout_weight 經驗

    layout_weight用于在LinearLayout中實現控件空間分配的按比例分配 我們可以使用layout_weight來實現html中的table效果

    jopen 2013-02-03   18816   0
    P29

      SSH技術Struts2.1.6實戰課件精_01 文檔

       Struts 2.x仍然是一個MVC框架。一般來說,某種軟件的第二個版本都是起源第一個版本,但實際上,Struts 2.x是個特例,它并非起源于Struts 1.x,而是起源于WebWork框架 ------ 另一MVC的框架。因此Struts 2.x與Struts 1.X是沒有直接關系的。<br>    WebWork是Apache的另一個MVC框架,發布于2002年3月。WebWork 項目在起時曾參考過Struts 1.x,因為Struts 1.x當時已經是個十分流行的MVC框架(Struts 1.x起源最早,應用最廣的基于MVC框架的Java Web 技術)。WebWork可以說對Struts 1.x進行了換血式的大改裝,從一個新的視覺實現MVC。拋棄了request、response等基于servlet 的API。

    shockwave 2013-12-15   535   0
    P38

      SSH技術Struts2.1.6實戰課件精_03 文檔

    能熟練使用struts2框架中的timer(計時攔截器)、token(防重復提 交攔截器)。 熟練定義攔截器。 熟練 struts2框架中的action方法進行效驗。 數量掌握xml配置方式進行效驗。 攔截器(interceptor)類似于Filer,在執行Action方法前后執行。攔截器是一種AOP(Aspect-Oriented Programming,面向切面的編程)思想的編程方式。它提供一種機制使開發能者對獨立的代碼抽象出來,配置到Action前后執行。

    shockwave 2013-12-15   1748   0
    1 2 3 4 5 6 7 8 9 10
  • sesese色