日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BufferFsStream

發(fā)布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BufferFsStream 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是buffer

buffer就是一個字節(jié)數(shù)組,一個字節(jié)8位,就是一個16進制數(shù)組

buffer的api

# 定義buffer 1. const buf1 = Buffer.alloc(10); 2. const buf2 = Buffer.from([1, 2, 3]); 3. const buf3 = Buffer.from('yyc');# 常用方法 1. buffer.toString() 2. buffer.slice() 3. Buffer.concat([buf1, buf2]) 復制代碼

fs

# readFile fs.readFile(path[, options], callback) options: {encodingflag flag 默認 = 'r' }# writeFile fs.writeFile(file, data[, options], callback) options: {encodingflag flag 默認 = 'w'mode 讀寫權限,默認為0666 }# appendFile fs.appendFile(file, data[, options], callback)# watchFile fs.watchFile(filename[, options], listener) 復制代碼

Stream

  • 流是一組有序的,有起點和終點的字節(jié)數(shù)據(jù)傳輸手段
  • 它不關心文件的整體內(nèi)容,只關注是否從文件中讀到了數(shù)據(jù),以及讀到數(shù)據(jù)之后的處理
  • 流是一個抽象接口,被 Node 中的很多對象所實現(xiàn)。比如HTTP 服務器request和response對象都是流。
  • // 可讀流 createReadStream fs.createReadStream(path, [options]) options: {flags打開文件要做的操作,默認為'r'encoding默認為nullstart開始讀取的索引位置end結束讀取的索引位置(包括結束位置)highWaterMark讀取緩存區(qū)默認的大小64kb}監(jiān)聽data事件 rs.on('data', function (data) {console.log(data); });監(jiān)聽end事件 rs.on('end', function () {console.log('讀取完成'); });監(jiān)聽error事件 rs.on('error', function (err) {console.log(err); });// 可寫流 fs.createWriteStream(path, options) options: {flags打開文件要做的操作,默認為'w'encoding默認為utf8highWaterMark寫入緩存區(qū)的默認大小16kb } 復制代碼

    pipe實現(xiàn)

    const fs = require('fs') const path = require('path')let rs = fs.createReadStream(path.resolve('1.html')) let ws = fs.createWriteStream(path.resolve('2.html'))rs.on('data', (data) => {let ret = ws.write(data)if (!ret) {rs.pause()} })ws.on('drain', () => {rs.resume() })rs.on('end', () => {ws.end() }) 復制代碼

    流的四種類型

    Readable - 可讀的流 (例如 fs.createReadStream()). Writable - 可寫的流 (例如 fs.createWriteStream()). Duplex - 可讀寫的流 (例如 net.Socket). Transform - 在讀寫過程中可以修改和變換數(shù)據(jù)的 Duplex 流 (例如 zlib.createDeflate()). 復制代碼 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結

    以上是生活随笔為你收集整理的BufferFsStream的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。