簡體   English   中英

從NodeJS返回二進制數據

[英]Returning binary data from NodeJS

我有一個名為ReadBinaryData()的函數,我想創建一個讀取流來讀取二進制數據並通過回調將二進制數據返回給調用函數。 看來你可以通過幾種不同的方式來實現這一點,並且我已經閱讀了有關如何執行此操作的相互矛盾的信息。 我想我應該使用Buffer對象,但不確定如何。 我有以下,但它似乎沒有正常工作。 有什么建議么 ?

function ReadBinaryData(successCallback){               
    var streamHandle = fs.createReadStream("PATH TO FILE",  {encoding: 'binary'});      
    var contentRead = '';       
   streamHandle.addListener('data', function(data) {            
        contentRead += data;                            
    });

   streamHandle.addListener('end', function(data) {                         
        successCallback(contentRead);       
    });     
};

我在5.x分支中使用了nodejs Buffer。 我查看那里的文檔並閱讀。 有很多新方法可以幫助你的二進制流。 雖然,在將來的版本中將刪除二進制選項,因此您可能需要重新考慮您正在做的事情以及原因。

http://nodejs.org/docs/v0.5.6/api/buffers.html

下面是緩沖區的一個示例用法,我使用的是5.x分支代碼,有一個類似於writeUInt32LE的方法,但是對於二進制文件。 還有相應的讀取方法。 如果你不能使用5.x分支,你可以查看nodejs javascript libs並看看他們的方法如何將字符串轉換為你想要的格式。

  var cur = this.network.ipInt;
  var bcast = this.broadcast.ipInt;
  var addresses = new Buffer((bcast-cur)*10);
  var offset = 0;
  while (cur < bcast){
    cur += 1;
    addresses.writeUInt32LE(cur,offset);
    offset+=10;
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM