適用於 Adobe® Flash® Platform 的 ActionScript® 3.0 參考
首頁  |  隱藏套件和類別清單 |  套件  |  類別  |  新增內容  |  索引  |  附錄  |  為什麼顯示英文?
篩選: 從伺服器擷取資料...
從伺服器擷取資料...
flash.utils 

IDataOutput  - AS3

套件flash.utils
介面public interface IDataOutput
實作者 ByteArray, FileStream, Socket

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

IDataOutput 介面會提供一組方法來寫入二進位資料。 這個介面是 IDataInput 介面的 I/O 對應,會讀取二進位資料。 IDataOutput 介面是由 FileStream、Socket 及 ByteArray 類別所實作。

根據預設,所有的 IDataInput 與 IDataOutput 作業都是 "bigEndian" (序列中的最高位元組儲存在最低或第一個儲存位址),而且是非封鎖的。

正負號擴充只在讀取資料時有影響,在寫入資料時則不重要。 因此,在使用 IDataInput.readUnsignedByte()IDataInput.readUnsignedShort() 時,並不需要分隔寫入方法。 換句話說:

  • 使用 IDataOutput.writeByte() 時,請搭配使用 IDataInput.readUnsignedByte()IDataInput.readByte()
  • 使用 IDataOutput.writeShort() 時,請搭配使用 IDataInput.readUnsignedShort()IDataInput.readShort()

檢視範例

相關 API 元素



公用屬性
 屬性定義自
  endian : String
資料的位元組順序,會是 Endian 類別的 BIG_ENDIAN 或 LITTLE_ENDIAN 常數。
IDataOutput
  objectEncoding : uint
使用 writeObject() 方法來寫入或讀取二進位資料時,用來判斷使用的是 AMF3 或 AMF0 格式。
IDataOutput
公用方法
 方法定義自
  
會寫入 Boolean 值。
IDataOutput
  
會寫入位元組。
IDataOutput
  
writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
以 length 指定的長度,從指定的位元組陣列 bytes,將位元組序列從 offset 所指定的位元組 (使用從零開始的索引) 開始寫入檔案串流、位元組串流或位元組陣列。
IDataOutput
  
會寫入 IEEE 754 雙精度 (64 位元) 浮點數。
IDataOutput
  
會寫入 IEEE 754 單精度 (32 位元) 浮點數。
IDataOutput
  
會寫入 32 位元的具有正負號整數。
IDataOutput
  
使用指定的字元集,將多位元組字串寫入檔案串流、位元組串流或位元組陣列。
IDataOutput
  
使用 AMF 序列化格式,將物件寫入檔案串流、位元組串流或位元組陣列。
IDataOutput
  
會寫入 16 位元整數。
IDataOutput
  
會寫入 32 位元的無正負號整數。
IDataOutput
  
將 UTF-8 字串寫入檔案串流、位元組串流或位元組陣列。
IDataOutput
  
會寫入 UTF-8 字串。
IDataOutput
屬性詳細資訊

endian

屬性
endian:String

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

資料的位元組順序,會是 Endian 類別的 BIG_ENDIANLITTLE_ENDIAN 常數。



實作
    public function get endian():String
    public function set endian(value:String):void

相關 API 元素

objectEncoding

屬性 
objectEncoding:uint

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

當使用 writeObject() 方法來寫入或讀取二進位資料時,用來判斷使用的是 AMF3 或 AMF0 格式。此值是來自於 ObjectEncoding 類別的常數。



實作
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

相關 API 元素

方法詳細資訊

writeBoolean

()方法
public function writeBoolean(value:Boolean):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 Boolean 值。 會根據 value 參數寫入單一位元組;如果為 true 則為 1,如果為 false 則為 0。

參數

value:Boolean — Boolean 值,用以決定寫入的位元組。如果參數為 true 則會寫入 1,如果為 false 則會寫入 0。

writeByte

()方法 
public function writeByte(value:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入位元組。 使用參數的較低 8 位元,而忽略其餘較高 24 位元。

參數

value:int — 整數的位元組值。

writeBytes

()方法 
public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

length 指定的長度,從指定的位元組陣列 bytes,將位元組序列從 offset 所指定的位元組 (使用從零開始的索引) 開始寫入檔案串流、位元組串流或位元組陣列。

如果省略 length 參數,便會使用 0 的預設長度,並從 offset 位置開始寫入整個緩衝區。如果也省略 offset 參數,便會寫入整個緩衝區。

如果 offsetlength 參數超出範圍,這兩者便會固定至 bytes 陣列的開頭與結尾。

參數

bytes:ByteArray — 要寫入的位元組陣列。
 
offset:uint (default = 0) — 從零開始的索引,指定要在陣列中開始寫入的位置。
 
length:uint (default = 0) — 無正負號的整數,指定要在緩衝區中寫入的長度。

writeDouble

()方法 
public function writeDouble(value:Number):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 IEEE 754 雙精度 (64 位元) 浮點數。

參數

value:Number — 雙精度 (64 位元) 浮點數。

writeFloat

()方法 
public function writeFloat(value:Number):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 IEEE 754 單精度 (32 位元) 浮點數。

參數

value:Number — 單精度 (32 位元) 浮點數。

writeInt

()方法 
public function writeInt(value:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 32 位元的具有正負號整數。

參數

value:int — 做為具有正負號整數的位元組值。

writeMultiByte

()方法 
public function writeMultiByte(value:String, charSet:String):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

使用指定的字元集,將多位元組字串寫入檔案串流、位元組串流或位元組陣列。

參數

value:String — 要寫入的字串值。
 
charSet:String — 表示要使用之字元集的字串。 可能的字元集字串包括 "shift-jis""cn-gb""iso-8859-1",以及其他等等。 如需完整清單,請參閱「支援的字元集」

writeObject

()方法 
public function writeObject(object:*):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

使用 AMF 序列化格式,將物件寫入檔案串流、位元組串流或位元組陣列。

參數

object:* — 要序列化的物件。

相關 API 元素

writeShort

()方法 
public function writeShort(value:int):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 16 位元整數。 使用參數的較低 16 位元,而忽略其餘較高 16 位元。

參數

value:int — 整數的位元組值。

writeUnsignedInt

()方法 
public function writeUnsignedInt(value:uint):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 32 位元的無正負號整數。

參數

value:uint — 做為無正負號整數的位元組值。

writeUTF

()方法 
public function writeUTF(value:String):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

將 UTF-8 字串寫入檔案串流、位元組串流或位元組陣列。會先寫入 UTF-8 字串的長度 (以位元組為單位,16 位元整數),後面緊接著表示字串之字元的位元組。

參數

value:String — 要寫入的字串值。


擲回值
RangeError — 如果長度大於 65535 的話。

writeUTFBytes

()方法 
public function writeUTFBytes(value:String):void

語言版本: ActionScript 3.0
執行階段版本: AIR 1.0, Flash Player 9, Flash Lite 4

會寫入 UTF-8 字串。 類似 writeUTF(),但是不以 16 位元長度的字做為字串前置詞。

參數

value:String — 要寫入的字串值。

DataOutputExample.as

下列範例會使用 DataOutputExample 類別,將 Boolean 和 pi 的雙精度浮點表示法寫入到位元組陣列。 這是透過下列步驟完成:
  1. 宣告新的 ByteArray 物件實體 byteArr
  2. 寫入 Boolean false 的位元組同等值以及 pi 的同等雙精度浮點數學值。
  3. 讀回 Boolean 值及雙精度浮點數。

請注意程式碼區段會如何加入到結尾來檢查是否有檔案結尾錯誤,以確保不會讀取超過位元組串流結尾的資料。

package {
    import flash.display.Sprite;
    import flash.utils.ByteArray;
    import flash.errors.EOFError;

    public class DataOutputExample extends Sprite {        
        public function DataOutputExample() {
            var byteArr:ByteArray = new ByteArray();

            byteArr.writeBoolean(false);
            byteArr.writeDouble(Math.PI);
            
            byteArr.position = 0;

            try {
                trace(byteArr.readBoolean()); // false
            } 
            catch(e:EOFError) {
                trace(e);           // EOFError: Error #2030: End of file was encountered.
            }
                        
            try {
                trace(byteArr.readDouble());    // 3.141592653589793
            } 
            catch(e:EOFError) {
                trace(e);           // EOFError: Error #2030: End of file was encountered.
            }
            
            try {
                trace(byteArr.readDouble());
            } 
            catch(e:EOFError) {
                trace(e);        // EOFError: Error #2030: End of file was encountered.
            }
        }
    }
}




[ X ]為什麼顯示英文?
「ActionScript 3.0 參考」的內容是以英文顯示

並非所有「ActionScript 3.0 參考」的內容都翻譯為所有語言。當語言元素未翻譯時,就會以英文顯示。例如,ga.controls.HelpBox 類別並沒有翻譯為任何語言。因此在參考的繁體中文版本中,ga.controls.HelpBox 類別就會以英文顯示。