Object 內建對象

物件RangeStream

Range 查詢流讀取對象

RangeStream 物件用於對SeekableStream物件資料進行截取。創建方法:

1 2 3 4 5
var stm = new io.RangeStream(stream, '0-10'); stm.end // 11 var stm = new io.RangeStream(stream, 0, 10); stm.end // 10

繼承關係

建構函數

RangeStream

RangeStream 建構函式

1 2
new RangeStream(SeekableStream stm, String range);

呼叫參數:

  • stm:SeekableStream, RangeStream 的二進位基礎流物件, 必須是SeekableStream
  • range: String, 描述range 的字串, 格式為'begin-[end]', '[begin]-end'

RangeStream 建構函式

1 2 3
new RangeStream(SeekableStream stm, Long begin, Long end);

呼叫參數:

  • stm:SeekableStream, RangeStream 的二進位基礎流物件, 必須是SeekableStream
  • begin: Long, 從stm 讀取內容的起始位置
  • end: Long, 從stm 讀取內容的結束位置

成員屬性

begin

Long, 查詢range 開始值

1
readonly Long RangeStream.begin;

end

Long, 查詢range 結束值

1
readonly Long RangeStream.end;

fd

Integer, 查詢Stream對應的文件描述符值, 由子類實現

1
readonly Integer RangeStream.fd;

成員函數

seek

移動文件目前操作位置

1 2
RangeStream.seek(Long offset, Integer whence = fs.SEEK_SET);

呼叫參數:

  • offset: Long, 指定新的位置
  • whence: Integer, 指定位置基準,允許的值為:SEEK_SET, SEEK_CUR, SEEK_END

tell

查詢流目前位置

1
Long RangeStream.tell();

回傳結果:

  • Long, 返回流當前位置

rewind

移動當前位置到流開頭

1
RangeStream.rewind();

size

查詢流尺寸

1
Long RangeStream.size();

回傳結果:

  • Long, 返回流尺寸

readAll

從流內讀取剩餘的全部數據

1
Buffer RangeStream.readAll() async;

回傳結果:

  • Buffer, 傳回從流內讀取的數據,若無數據可讀,或連線中斷,則傳回null

truncate

修改檔案尺寸,如果新尺寸小於原尺寸,則檔案被截斷

1
RangeStream.truncate(Long bytes) async;

呼叫參數:

  • bytes: Long, 新的文件尺寸

eof

查詢文件是否到結尾

1
Boolean RangeStream.eof();

回傳結果:

  • Boolean, 回傳True 表示結尾

stat

查詢當前文件的基礎信息

1
Stat RangeStream.stat() async;

回傳結果:

  • Stat, 返回Stat對象描述文件訊息

read

從流內讀取指定大小的數據

1
Buffer RangeStream.read(Integer bytes = -1) async;

呼叫參數:

  • bytes: Integer, 指定要讀取的資料量,預設為讀取隨機大小的資料區塊,讀取的資料尺寸取決於設備

回傳結果:

  • Buffer, 傳回從流內讀取的數據,若無數據可讀,或連線中斷,則傳回null

write

將給定的資料寫入流

1
RangeStream.write(Buffer data) async;

呼叫參數:

  • data:Buffer, 給定要寫入的數據

flush

將檔案緩衝區內容寫入實體設備

1
RangeStream.flush() async;

close

關閉目前流對象

1
RangeStream.close() async;

copyTo

複製流資料到目標流中

1 2
Long RangeStream.copyTo(Stream stm, Long bytes = -1) async;

呼叫參數:

  • stm:Stream, 目標流對象
  • bytes: Long, 複製的位元組數

回傳結果:

  • Long, 傳回複製的位元組數

toString

傳回物件的字串表示,一般回傳"[Native Object]",物件可以根據自己的特性重新實現

1
String RangeStream.toString();

回傳結果:

  • String, 傳回物件的字串表示

toJSON

傳回物件的JSON 格式表示,一般傳回物件定義的可讀屬性集合

1
Value RangeStream.toJSON(String key = "");

呼叫參數:

  • key: String, 未使用

回傳結果:

  • Value, 傳回包含可JSON 序列化的值