Поделиться через


InputStream.ReadNBytes Метод

Определение

Перегрузки

ReadNBytes(Int32)

Считывает до указанного количества байтов из входного потока.

ReadNBytes(Byte[], Int32, Int32)

Считывает запрошенное число байтов из входного потока в заданный массив байтов.

ReadNBytes(Int32)

Считывает до указанного количества байтов из входного потока.

[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[]

Параметры

len
Int32

максимальное число байтов для чтения

Возвращаемое значение

Byte[]

массив байтов, содержащий байты, считываемые из этого входного потока

Атрибуты

Комментарии

Считывает до указанного количества байтов из входного потока. Этот метод блокирует до тех пор, пока не будет прочитано запрошенное число байтов, обнаружен конец потока или возникает исключение. Этот метод не закрывает входной поток.

Длина возвращаемого массива равна количеству байтов, считываемых из потока. Если len значение равно нулю, то байты не считываются и возвращается пустой массив байтов. В противном случае из потока считываются до len байтов. len Меньше байтов может быть прочитано, если обнаружен конец потока.

Когда этот поток достигает конца потока, дальнейшие вызовы этого метода возвращают пустой массив байтов.

Обратите внимание, что этот метод предназначен для простых случаев, когда удобно считывать указанное число байтов в массив байтов. Общий объем памяти, выделенный этим методом, пропорциональен количеству байтов, считываемых из потока, ограничивающегося len. Поэтому метод может быть безопасно вызван с очень большими значениями предоставленной len достаточной памяти.

Поведение для случая, когда входной поток асинхронно закрыт или поток прерван во время чтения, является весьма входным потоком, поэтому не указан.

Если ошибка ввода-вывода возникает считывание из входного потока, это может сделать после некоторых, но не все байты были считаны. Следовательно, входной поток может не находиться в конце потока и может находиться в несогласованном состоянии. Настоятельно рекомендуется немедленно закрыть поток, если возникает ошибка ввода-вывода.

Добавлено в 11.

Документация по Java для java.io.InputStream.readNBytes(int).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к

ReadNBytes(Byte[], Int32, Int32)

Считывает запрошенное число байтов из входного потока в заданный массив байтов.

[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

Параметры

b
Byte[]

массив байтов, в который считываются данные

off
Int32

смещение b начала записи данных

len
Int32

максимальное число байтов для чтения

Возвращаемое значение

фактическое число байтов, считываемых в буфер

Атрибуты

Комментарии

Считывает запрошенное число байтов из входного потока в заданный массив байтов. Этот метод блокирует до тех пор, пока len не будут прочитаны байты входных данных, обнаружен конец потока или возникает исключение. Возвращается число байтов, которые фактически считываются, возможно, ноль. Этот метод не закрывает входной поток.

В случае достижения конца потока до len чтения байтов будет возвращено фактическое число байтов. Когда этот поток достигает конца потока, дальнейшие вызовы этого метода возвращают ноль.

Если len значение равно нулю, то байты не считываются и 0 возвращаются; в противном случае выполняется попытка считывать до len байтов.

Первое чтение байтов хранится в элементе b[off], следующем в b[off+1]и т. д. Число операций чтения байтов в большинстве случаев равно len. Пусть k будет фактически считываемым числом байтов; эти байты будут храниться в элементах b[off] черезb[off+ k-1], оставляя элементы b[off+k] через b[off+len-1] небезопасные.

Поведение для случая, когда входной поток асинхронно закрыт или поток прерван во время чтения, является весьма входным потоком, поэтому не указан.

Если ошибка ввода-вывода возникает считывания из входного потока, это может сделать после некоторых b , но не все байты были обновлены с данными из входного потока. Следовательно, входной поток может b находиться в несогласованном состоянии. Настоятельно рекомендуется немедленно закрыть поток, если возникает ошибка ввода-вывода.

Добавлено в 9.

Документация по Java для java.io.InputStream.readNBytes(byte[], int, int).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к