Freigeben über


InputStream.ReadNBytes Methode

Definition

Überlädt

ReadNBytes(Int32)

Liest bis zu einer angegebenen Anzahl von Bytes aus dem Eingabedatenstrom.

ReadNBytes(Byte[], Int32, Int32)

Liest die angeforderte Anzahl von Bytes aus dem Eingabedatenstrom in das angegebene Bytearray.

ReadNBytes(Int32)

Liest bis zu einer angegebenen Anzahl von Bytes aus dem Eingabedatenstrom.

[Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)]
public virtual byte[]? ReadNBytes (int len);
[<Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)>]
abstract member ReadNBytes : int -> byte[]
override this.ReadNBytes : int -> byte[]

Parameter

len
Int32

die maximale Anzahl der zu lesenden Bytes

Gibt zurück

Byte[]

ein Bytearray, das die aus diesem Eingabedatenstrom gelesenen Bytes enthält

Attribute

Hinweise

Liest bis zu einer angegebenen Anzahl von Bytes aus dem Eingabedatenstrom. Diese Methode blockiert, bis die angeforderte Anzahl von Bytes gelesen wurde, das Ende des Datenstroms erkannt wird oder eine Ausnahme ausgelöst wird. Mit dieser Methode wird der Eingabedatenstrom nicht geschlossen.

Die Länge des zurückgegebenen Arrays entspricht der Anzahl der aus dem Datenstrom gelesenen Bytes. Wenn len null ist, werden keine Bytes gelesen, und ein leeres Bytearray wird zurückgegeben. Andernfalls werden bis zu len Bytes aus dem Datenstrom gelesen. Weniger als len Bytes können gelesen werden, wenn das Ende des Datenstroms auftritt.

Wenn dieser Datenstrom das Ende des Datenstroms erreicht, geben weitere Aufrufe dieser Methode ein leeres Bytearray zurück.

Beachten Sie, dass diese Methode für einfache Fälle vorgesehen ist, in denen es praktisch ist, die angegebene Anzahl von Bytes in ein Bytearray zu lesen. Die von dieser Methode zugewiesene Gesamtmenge des Arbeitsspeichers ist proportional zur Anzahl der Bytes, die aus dem Datenstrom gelesen werden, der an len. Daher kann die Methode sicher mit sehr großen Werten aufgerufen werden, wenn len genügend Arbeitsspeicher verfügbar ist.

Das Verhalten für den Fall, dass der Eingabedatenstrom asynchron geschlossen wird oder der Thread während des Lesens unterbrochen wird, ist hocheingabedatenstromspezifisch und daher nicht angegeben.

Wenn ein E/A-Fehler beim Lesen aus dem Eingabedatenstrom auftritt, kann dies nach einigen, aber nicht allen Byte gelesen werden. Folglich befindet sich der Eingabedatenstrom möglicherweise nicht am Ende des Datenstroms und befindet sich möglicherweise in einem inkonsistenten Zustand. Es wird dringend empfohlen, dass der Datenstrom umgehend geschlossen wird, wenn ein E/A-Fehler auftritt.

In 11 hinzugefügt.

Java-Dokumentation für java.io.InputStream.readNBytes(int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

ReadNBytes(Byte[], Int32, Int32)

Liest die angeforderte Anzahl von Bytes aus dem Eingabedatenstrom in das angegebene Bytearray.

[Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)]
public virtual int ReadNBytes (byte[]? b, int off, int len);
[<Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)>]
abstract member ReadNBytes : byte[] * int * int -> int
override this.ReadNBytes : byte[] * int * int -> int

Parameter

b
Byte[]

bytearray, in das die Daten gelesen werden

off
Int32

start offset in b which the data is written

len
Int32

die maximale Anzahl der zu lesenden Bytes

Gibt zurück

die tatsächliche Anzahl der in den Puffer gelesenen Bytes

Attribute

Hinweise

Liest die angeforderte Anzahl von Bytes aus dem Eingabedatenstrom in das angegebene Bytearray. Diese Methode blockiert, bis len Bytes von Eingabedaten gelesen wurden, das Ende des Datenstroms erkannt wird oder eine Ausnahme ausgelöst wird. Die Anzahl der tatsächlich gelesenen Bytes, möglicherweise Null, wird zurückgegeben. Mit dieser Methode wird der Eingabedatenstrom nicht geschlossen.

Wenn das Ende des Datenstroms erreicht ist, bevor len Bytes gelesen wurden, wird die tatsächliche Anzahl der gelesenen Bytes zurückgegeben. Wenn dieser Datenstrom das Ende des Datenstroms erreicht, werden weitere Aufrufe dieser Methode null zurückgegeben.

Wenn len null ist, werden keine Bytes gelesen und 0 zurückgegeben. Andernfalls wird versucht, bis zu Bytes zu len lesen.

Der erste Bytelesevorgang wird in Element b[off]gespeichert, dem nächsten b[off+1]in und so weiter. Die Anzahl der gelesenen Bytes ist höchstens gleich len. Lassen Sie k die Anzahl der Bytes sein, die tatsächlich gelesen werden; diese Bytes werden in Elementen b[off] überb[off+ k-1] gespeichert, sodass Elemente b[off+k] nicht b[off+len-1] betroffen sind.

Das Verhalten für den Fall, dass der Eingabedatenstrom asynchron geschlossen wird oder der Thread während des Lesens unterbrochen wird, ist hocheingabedatenstromspezifisch und daher nicht angegeben.

Wenn ein E/A-Fehler beim Lesen aus dem Eingabedatenstrom auftritt, kann dies nach einigen, aber nicht allen Byte b mit Daten aus dem Eingabedatenstrom aktualisiert werden. Folglich befindet sich der Eingabedatenstrom und b kann sich in einem inkonsistenten Zustand befinden. Es wird dringend empfohlen, dass der Datenstrom umgehend geschlossen wird, wenn ein E/A-Fehler auftritt.

Hinzugefügt in 9.

Java-Dokumentation für java.io.InputStream.readNBytes(byte[], int, int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: