您好,登錄后才能下訂單哦!
本篇內容主要講解“在JavaScript中Node.js處理數據IO的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“在JavaScript中Node.js處理數據IO的方法是什么”吧!
在JavaScript中,對于字符串的操作已經十分便捷,不存在二進制數據類型,這些對字符串的簡單操作和DOM操作基本上已經可以滿足前端的需求了,但是Node.js中提供了處理文件和I/O的功能,因此需要處理大量的二進制數據。而在Node.js中Buffer和Stream文件流對二進制數據的處理提供了很好的支持
Buffer緩存區
Buffer類是隨著Node.js內核一起發布的核心庫,用于支持I/O操作中移動的數據處理。Buffer類為Node.js提供了一種存儲原始數據的方法,該方法用來在內存中創建一個專門存放二進制數據的緩存區,也就是說預留了一定的存儲空間在內存中,用來暫時保存輸入或者輸出的數據,這樣Node.js也可以處理二進制數據
先說二進制,二進制是計算機技術中廣泛采用的一種數制,是用0和1兩個數碼來表示的數據,由于計算機只能識別二進制數據,而人們很難看懂那些0和1的組合代表什么,所以就需要將二進制數據轉換為人們能夠識別的字符,這就需要設置字符編碼,通過字符編碼找到相應的字符集進行轉換,最遠書的字符編碼就是ASCII
再說Buffer的構造函數
new Buffer(array)
new Buffer(size)
new Buffer(str[,encoding])
new Buffer(Buffer)
new Buffer(arrayBuffer)
可以看出,參數分別是字節,數組,buffer對象,字符串等等
再比如寫入讀取的語法:
write(string[,offset[,length]][,encoding])
toString([encoding,state[,end]])
concat(list[,totallength])
Stream文件流
由于Buffer緩存區限制在1GB,超過1GB的文件無法直接完成讀寫,在讀寫大文件時,如果讀/寫資源一直持續不停,那么Node.js就無法繼續其他的工作,為此,Node.js提供了Stream文件流模塊
最理想的方法就是,讀一部分,寫一部分,不論文件的大小,只是時間的問題,總會處理完成,這就需要用到流的概念
文件A通過流動的形式通過數據流管道,進入文件B中,采用“讀一部分。寫一部分”的方式,流的好處就是,接收方可以提前處理,縮短時間,提高速度,就像在線看視頻,并不是全部緩存好了再播放,而是看一部分,緩存一部分
Stream四種流類型
Readable
Writable
Duplex
Transform
而在使用大文件復制時,通過可讀流的chunk參數傳遞數據,chunk就像接數據的盆,在可讀流中還有一個函數叫pipe(),這個函數是一個很高效的文件處理方式,可以簡化之前復制文件的操作,所以,使用pipe進行完成數據的讀取和寫入也是很重要的
到此,相信大家對“在JavaScript中Node.js處理數據IO的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。