fs.createReadStream(path[, options])
| 版本 | 變化 | 
|---|---|
| v16.10.0 | 如果提供了  | 
| v16.10.0 | 如果   | 
| v15.4.0 | 
  | 
| v14.0.0 | 將   | 
| v13.6.0、v12.17.0 | 
  | 
| v12.10.0 | 啟用  | 
| v11.0.0 | 對   | 
| v7.6.0 | 
  | 
| v7.0.0 | 傳遞的  | 
| v2.3.0 | 傳遞的  | 
| v0.1.31 | 添加於:v0.1.31  | 
參數
與  <stream.Readable>  的 16 KiB 默認 highWaterMark 不同,此方法返回的流的默認 highWaterMark 為 64 KiB。
options 可以包含 start 和 end 值,以從文件而不是整個文件中讀取字節範圍。 start 和 end 都包含在內並從 0 開始計數,允許的值在 [0,   ] 範圍內。如果指定了 Number.MAX_SAFE_INTEGER fd 並且省略了 start 或 undefined ,則 fs.createReadStream() 從當前文件位置開始順序讀取。 encoding 可以是  <Buffer>  接受的任何一種。
如果指定了fd,則ReadStream 將忽略path 參數並使用指定的文件說明符。這意味著不會發出 'open' 事件。 fd 應該是阻塞的;非阻塞 fd 應該傳遞給  <net.Socket>  。
如果fd 指向僅支持阻塞讀取的字符設備(例如鍵盤或聲卡),則讀取操作在數據可用之前不會完成。這可以防止進程退出和流自然關閉。
默認情況下,流將在銷毀後發出 'close' 事件。將 emitClose 選項設置為 false 以更改此行為。
通過提供 fs 選項,可以覆蓋 open 、 read 和 close 的相應 fs 實現。提供fs 選項時,需要覆蓋read。如果未提供 fd,則還需要覆蓋 open。如果 autoClose 是 true ,則還需要覆蓋 close。
import { createReadStream } from 'node:fs';
// Create a stream from some character device.
const stream = createReadStream('/dev/input/event0');
setTimeout(() => {
  stream.close(); // This may not close the stream.
  // Artificially marking end-of-stream, as if the underlying resource had
  // indicated end-of-file by itself, allows the stream to close.
  // This does not cancel pending read operations, and if there is such an
  // operation, the process may still not be able to exit successfully
  // until it finishes.
  stream.push(null);
  stream.read(0);
}, 100);
如果autoClose 為假,則即使出現錯誤,文件說明符也不會關閉。關閉它並確保沒有文件說明符泄漏是應用程序的責任。如果 autoClose 設置為 true(默認行為),則在 'error' 或 'end' 上,文件說明符將自動關閉。
mode 設置文件模式(權限和粘性位),但前提是文件已創建。
讀取 100 字節長文件的最後 10 字節的示例:
import { createReadStream } from 'node:fs';
createReadStream('sample.txt', { start: 90, end: 99 });
如果options 是字符串,則它指定編碼。
相關用法
- Node.js fs.createReadStream()用法及代碼示例
 - Node.js fs.createWriteStream()用法及代碼示例
 - Node.js fs.chmod()用法及代碼示例
 - Node.js fs.constants用法及代碼示例
 - Node.js fs.copyFile()用法及代碼示例
 - Node.js fs.closeSync()用法及代碼示例
 - Node.js fs.copyFile(src, dest[, mode], callback)用法及代碼示例
 - Node.js fs.copyFileSync()用法及代碼示例
 - Node.js fs.chownSync()用法及代碼示例
 - Node.js fs.close()用法及代碼示例
 - Node.js fs.chmodSync()用法及代碼示例
 - Node.js fs.copyFileSync(src, dest[, mode])用法及代碼示例
 - Node.js fs.chmod(path, mode, callback)用法及代碼示例
 - Node.js fs.chown()用法及代碼示例
 - Node.js fs.filehandle.datasync()用法及代碼示例
 - Node.js fs.read()用法及代碼示例
 - Node.js fs.Dirent.isFile()用法及代碼示例
 - Node.js fs.Dir.closeSync()用法及代碼示例
 - Node.js fs.fchmodSync()用法及代碼示例
 - Node.js fs.symlink(target, path[, type], callback)用法及代碼示例
 - Node.js fs.mkdir()用法及代碼示例
 - Node.js fs.mkdirSync()用法及代碼示例
 - Node.js fs.fdatasync()用法及代碼示例
 - Node.js fs.Dirent.isFIFO()用法及代碼示例
 - Node.js fs.writeSync()用法及代碼示例
 
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 fs.createReadStream(path[, options])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
