Object 內置對象

對象Stream

流操作對象,用於二進制數據流讀寫

Stream 為基礎對象,用於為流處理定義標準藉口,不能獨立創建

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>Stream|fd|read();write();flush();close();copyTo()] [<class>BufferedStream] [<class>SeekableStream] [<class>File] [<class>MemoryStream] [<class>RangeStream] [<class>Socket] [<class>SslSocket] [<class>TTYInputStream] [<class>TTYOutputStream] [object] <:- [Stream] [Stream] <:- [BufferedStream] [Stream] <:- [SeekableStream] [SeekableStream] <:- [File] [SeekableStream] <:- [MemoryStream] [SeekableStream] <:- [RangeStream] [Stream] <:- [Socket] [Stream] <:- [SslSocket] [Stream] <:- [TTYInputStream] [Stream] <:- [TTYOutputStream] Stream fd read() write() flush() close() copyTo() object toString() toJSON() BufferedStream SeekableStream File MemoryStream RangeStream Socket SslSocket TTYInputStream TTYOutputStream

成員屬性

fd

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

1
readonly Integer Stream.fd;

成員函數

read

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

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

調用參數:

  • bytes: Integer, 指定要讀取的數據量,缺省為讀取隨機大小的數據塊,讀出的數據尺寸取決於設備

返回結果:

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

write

將給定的數據寫入流

1
Stream.write(Buffer data) async;

調用參數:

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

flush

將文件緩衝區內容寫入物理設備

1
Stream.flush() async;

close

關閉當前流對象

1
Stream.close() async;

copyTo

複製流數據到目標流中

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

調用參數:

  • stm: Stream, 目標流對象
  • bytes: Long, 複製的字節數

返回結果:

  • Long, 返回複製的字節數

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String Stream.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

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

調用參數:

  • key: String, 未使用

返回結果:

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