IGatheringByteChannel.Write Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| Write(ByteBuffer[]) |
Schreibt eine Bytesequenz aus den angegebenen Puffern in diesen Kanal. |
| Write(ByteBuffer[], Int32, Int32) |
Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal. |
Write(ByteBuffer[])
Schreibt eine Bytesequenz aus den angegebenen Puffern in diesen Kanal.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;)J", "GetWrite_arrayLjava_nio_ByteBuffer_Handler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] -> int64
Parameter
- srcs
- ByteBuffer[]
Die Puffer, aus denen Bytes abgerufen werden sollen
Gibt zurück
Die Anzahl der geschriebenen Bytes, möglicherweise Null
- Attribute
Ausnahmen
wenn der Kanal während dieses Schreibvorgangs von einem anderen Thread geschlossen wird.
wenn ein anderer Thread den aufrufenden Thread unterbricht, während der Vorgang ausgeführt wird. Der Unterbrechungszustand des aufrufenden Threads wird festgelegt, und der Kanal wird geschlossen.
wenn der Kanal geschlossen ist.
wenn oder offset , oder length wenn offset + length größer als die Größe von buffers.
wenn ein anderer E/A-Fehler auftritt; Details befinden sich in der Nachricht.
wenn der Kanal nicht in einem Modus geöffnet wurde, der das Schreiben zulässt.
Hinweise
Schreibt eine Bytesequenz aus den angegebenen Puffern in diesen Kanal.
Ein Aufruf dieser Methode des Formulars c.write(srcs) verhält sich genauso wie der Aufruf
<Blockquote>
c.write(srcs, 0, srcs.length);
</blockquote>
Java Dokumentation für java.nio.channels.GatheringByteChannel.write(java.nio.ByteBuffer[]).
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
Write(ByteBuffer[], Int32, Int32)
Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public long Write(Java.Nio.ByteBuffer[]? srcs, int offset, int length);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;II)J", "GetWrite_arrayLjava_nio_ByteBuffer_IIHandler:Java.Nio.Channels.IGatheringByteChannelInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int -> int64
Parameter
- srcs
- ByteBuffer[]
Die Puffer, aus denen Bytes abgerufen werden sollen
- offset
- Int32
Der Offset innerhalb des Pufferarrays des ersten Puffers, aus dem Bytes abgerufen werden sollen; darf nicht negativ und nicht größer als srcs.length
- length
- Int32
Die maximale Anzahl von Puffern, auf die zugegriffen werden soll; darf nicht negativ und nicht größer als srcs.length - offset
Gibt zurück
Die Anzahl der geschriebenen Bytes, möglicherweise Null
- Attribute
Ausnahmen
wenn der Kanal während dieses Schreibvorgangs von einem anderen Thread geschlossen wird.
wenn ein anderer Thread den aufrufenden Thread unterbricht, während der Vorgang ausgeführt wird. Der Unterbrechungszustand des aufrufenden Threads wird festgelegt, und der Kanal wird geschlossen.
wenn der Kanal geschlossen ist.
wenn oder offset , oder length wenn offset + length größer als die Größe von buffers.
wenn ein anderer E/A-Fehler auftritt; Details befinden sich in der Nachricht.
wenn der Kanal nicht zum Schreiben geöffnet wurde.
Hinweise
Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal.
Es wird versucht, bis zu r Bytes in diesen Kanal zu schreiben, wobei r die Gesamtanzahl der Bytes ist, die in der angegebenen Untermenge des angegebenen Pufferarrays verbleiben, d. h.,
<Blockquote>
srcs[offset].remaining()
+ srcs[offset+1].remaining()
+ ... + srcs[offset+length-1].remaining()
</blockquote>
im Moment, in dem diese Methode aufgerufen wird.
Angenommen, eine Bytesequenz der Länge n wird geschrieben, wobei 0 <= n <= r. Bis zu den ersten srcs[offset].remaining() Bytes dieser Sequenz werden vom Puffer srcs[offset]geschrieben, bis zu den nächsten srcs[offset+1].remaining() Bytes aus dem Puffer srcs[offset+1]usw. geschrieben, bis die gesamte Bytesequenz geschrieben wird. So viele Bytes wie möglich werden aus jedem Puffer geschrieben, daher ist die endgültige Position jedes aktualisierten Puffers, mit Ausnahme des letzten aktualisierten Puffers, garantiert gleich dem Grenzwert dieses Puffers.
Sofern nicht anders angegeben, wird ein Schreibvorgang erst nach dem Schreiben aller angeforderten Bytes zurückgegeben. Einige Arten von Kanälen können je nach Status nur einige der Bytes oder gar keine schreiben. Ein Socketkanal im nicht blockierenden Modus kann z. B. nicht mehr Bytes schreiben, als im Ausgabepuffer des Sockets frei sind.
Diese Methode kann jederzeit aufgerufen werden. Wenn jedoch bereits ein anderer Thread einen Schreibvorgang für diesen Kanal initiiert hat, wird ein Aufruf dieser Methode blockiert, bis der erste Vorgang abgeschlossen ist.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.