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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。