語言

Pipe.SinkChannel.Write 方法

定義

多載

名稱 Description
Write(ByteBuffer)

從給定的緩衝區寫入一串位元組到該通道。

Write(ByteBuffer[])

從給定緩衝區寫入一串位元組到此通道。

Write(ByteBuffer[], Int32, Int32)

從給定緩衝區的子序列中寫入一串位元組到此通道。

Write(ByteBuffer)

從給定的緩衝區寫入一串位元組到該通道。

[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)I", "GetWrite_Ljava_nio_ByteBuffer_Handler")]
public abstract int Write(Java.Nio.ByteBuffer? src);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)I", "GetWrite_Ljava_nio_ByteBuffer_Handler")>]
abstract member Write : Java.Nio.ByteBuffer -> int

參數

src
ByteBuffer

要從中擷取位元組的緩衝區

傳回

寫入的位元組數,可能是零

實作

屬性

備註

從給定的緩衝區寫入一串位元組到該通道。

嘗試寫入最多 r 個位元組到通道,其中 r 是緩衝區中剩餘的位元組數,即 src.remaining()此方法被呼叫時的位元組數。

假設寫入一個長度為 n 的位元組序列,其中 0& nbsp;<= n <= R。 此位元組序列將從索引 p 開始的緩衝區傳輸,p 是該方法被呼叫時緩衝區的位置;最後寫入的位元組索引為 p + n - 1 返回時緩衝區的位置將等於 p + n;其極限不會改變。

除非另有說明,寫入操作只有在寫入所有請求的 r 個位元組後才會回傳。 某些類型的通道,根據其狀態,可能只寫入部分位元組,甚至可能完全不寫入。 例如,非阻塞模式下的套接字通道不能寫入超過該套接字輸出緩衝區空閒的位元組。

此方法可隨時啟動。 然而,如果已有其他執行緒對該通道發起寫入操作,則呼叫此方法會阻塞直到第一個操作完成。

Java 文件 java.nio.channels.WritableByteChannel.write(java.nio.ByteBuffer)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Write(ByteBuffer[])

從給定緩衝區寫入一串位元組到此通道。

[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler")]
public abstract long Write(Java.Nio.ByteBuffer[]? srcs);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler")>]
abstract member Write : Java.Nio.ByteBuffer[] -> int64

參數

srcs
ByteBuffer[]

要從中擷取位元組的緩衝區

傳回

寫入的位元組數,可能是零

實作

屬性

備註

從給定緩衝區寫入一串位元組到此通道。

此形式的 c.write(srcs) 呼叫行為與呼叫完全相同

<引用>

c.write(srcs, 0, srcs.length);

</區塊引用>

Java 文件 java.nio.channels.GatheringByteChannel.write(java.nio.ByteBuffer[])。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Write(ByteBuffer[], Int32, Int32)

從給定緩衝區的子序列中寫入一串位元組到此通道。

[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler")]
public abstract long Write(Java.Nio.ByteBuffer[]? srcs, int offset, int length);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler")>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int -> int64

參數

srcs
ByteBuffer[]

要從中擷取位元組的緩衝區

offset
Int32

第一個要取出位元組的緩衝區緩衝區陣列中的偏移量;必須非負且不大於 srcs.length

length
Int32

可存取的最大緩衝區數量;必須非負且不大於 srcs.length - offset

傳回

寫入的位元組數,可能是零

實作

屬性

備註

從給定緩衝區的子序列中寫入一串位元組到此通道。

嘗試將最多 r 位元組寫入此通道,其中 r 為該緩衝區陣列指定子序列中剩餘的總位元組數,即,

<引用>

srcs[offset].remaining()
                + srcs[offset+1].remaining()
                + ... + srcs[offset+length-1].remaining()

</區塊引用>

在此方法被啟動的瞬間。

假設寫入一個長度為 n 的位元組序列,其中 0& nbsp;<= n <= R。 此序列的前幾個 srcs[offset].remaining() 位元組從緩衝 srcs[offset]區寫入,直到下一個 srcs[offset+1].remaining() 位元組從緩衝 srcs[offset+1]區寫入,依此類推,直到整個位元組序列寫入完畢。 每個緩衝區會寫入盡可能多的位元組,因此除了最後更新的緩衝區外,每個更新緩衝區的最終位置都保證等於該緩衝區的限制。

除非另有說明,寫入操作只有在寫入所有請求的 r 個位元組後才會回傳。 某些類型的通道,根據其狀態,可能只寫入部分位元組,甚至可能完全不寫入。 例如,非阻塞模式下的套接字通道不能寫入超過該套接字輸出緩衝區空閒的位元組。

此方法可隨時啟動。 然而,如果已有其他執行緒對該通道發起寫入操作,則呼叫此方法會阻塞直到第一個操作完成。

Java 文件 java.nio.channels.GatheringByteChannel.write(java.nio.ByteBuffer[], int, int)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於