Sprache

IGatheringByteChannel.Write Methode

Definition

Ü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.

Java Dokumentation für java.nio.channels.GatheringByteChannel.write(java.nio.ByteBuffer[], int, int).

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: