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
максимальное число байтов для чтения
Возвращаемое значение
массив байтов, содержащий байты, считываемые из этого входного потока
- Атрибуты
Комментарии
Считывает до указанного количества байтов из входного потока. Этот метод блокирует до тех пор, пока не будет прочитано запрошенное число байтов, обнаружен конец потока или возникает исключение. Этот метод не закрывает входной поток.
Длина возвращаемого массива равна количеству байтов, считываемых из потока. Если 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.