2016-01-14 50 views
-1

我想先讀取14 GB視頻文件中的1 MB。如何從NodeJS中的14 GB文件中讀取第一個1 MB

我到目前爲止試過的是什麼?

fs.open('/tmp/foo.txt', 'r', function(status, fd) { 

if (status) { 
    // debug(status.message) 
    return 
} 

var buffer = new Buffer(1024 * 1024); 

fs.read(fd, buffer, 0, 1024 * 1024, 0, function(err, num, buffer) { 
    console.log(num, buffer) 
}) 

我想要一部分文件,以便我可以提取元數據。

+0

這段代碼不起作用嗎?如果是這樣,它會給出錯誤嗎?如果是這樣,請發佈該錯誤。 – Houseman

+0

另外,你想用什麼格式「讀」它?它是用十六進制表示的嗎? ASCII? utf16le應按?你需要在讀取它之前將你的緩衝區轉換爲這些格式之一http://stackoverflow.com/questions/34190390/buffer-wont-print-to-string – Houseman

+0

我想要緩衝區,所以我可以通過獲取元數據出來 –

回答

1

用開始和結束創建讀取流。

var stream = fs.createReadStream('file', { 
    encoding: null, 
    start: 0, 
    end: 1024 * 1024 
}); 
+0

我可以從它獲得緩衝區,所以我可以通過它來獲取元數據。 –

+0

當文件被讀取時,數據流將發出帶有數據塊的「數據」事件。您應該以流媒體的方式提取元數據。 – josh3736

相關問題