다음을 통해 공유


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

이 입력 스트림에서 읽은 바이트를 포함하는 바이트 배열

특성

설명

입력 스트림에서 지정된 바이트 수까지 읽습니다. 이 메서드는 요청된 바이트 수를 읽거나, 스트림의 끝을 검색하거나, 예외가 throw될 때까지 차단합니다. 이 메서드는 입력 스트림을 닫지 않습니다.

반환된 배열의 길이는 스트림에서 읽은 바이트 수와 같습니다. 0이면 len 바이트를 읽지 않고 빈 바이트 배열이 반환됩니다. 그렇지 않으면 스트림에서 최대 len 바이트를 읽습니다. 스트림의 끝이 발견되면 읽는 바이트보다 len 작을 수 있습니다.

이 스트림이 스트림의 끝에 도달하면 이 메서드를 추가로 호출하면 빈 바이트 배열이 반환됩니다.

이 메서드는 지정된 바이트 수를 바이트 배열로 읽는 것이 편리한 간단한 경우를 위한 것입니다. 이 메서드에 의해 할당된 총 메모리 양은 바인딩된 스트림에서 읽은 바이트 수에 len비례합니다. 따라서 충분한 메모리가 제공된 매우 큰 값 len 으로 메서드를 안전하게 호출할 수 있습니다.

입력 스트림이 비동기적으로 닫히거나 읽기 중에 스레드가 중단되는 경우 동작은 고도로 입력 스트림에 따라 지정되지 않습니다.

I/O 오류가 입력 스트림에서 읽는 경우 바이트를 읽은 후 일부(전부는 아님)가 발생할 수 있습니다. 따라서 입력 스트림이 스트림의 끝에 있지 않을 수 있으며 일관성이 없는 상태일 수 있습니다. I/O 오류가 발생할 경우 스트림을 즉시 닫는 것이 좋습니다.

11에 추가되었습니다.

에 대한 java.io.InputStream.readNBytes(int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

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

읽을 최대 바이트 수

반환

버퍼로 읽은 실제 바이트 수

특성

설명

입력 스트림에서 지정된 바이트 배열로 요청된 바이트 수를 읽습니다. 이 메서드는 입력 데이터의 바이트를 읽거나, 스트림의 끝을 검색하거나, 예외가 throw될 때까지 len 차단합니다. 실제로 읽은 바이트 수(0)가 반환됩니다. 이 메서드는 입력 스트림을 닫지 않습니다.

바이트를 읽기 전에 len 스트림의 끝에 도달하는 경우 읽은 실제 바이트 수가 반환됩니다. 이 스트림이 스트림의 끝에 도달하면 이 메서드의 추가 호출은 0을 반환합니다.

0이면 len 바이트를 읽 0 지 않고 반환됩니다. 그렇지 않으면 바이트까지 len 읽으려고 시도합니다.

첫 번째 바이트 읽기는 요소 b[off], 다음 b[off+1]바이트 등에 저장됩니다. 읽은 바이트 수는 최대 len. 실제로 읽은 바이트 수를 k로 둡니다. 이러한 바이트는 k-1]를 통해 b[off+요소 b[off] 에 저장되고 요소 b[off+k]b[off+len-1] 는 영향을 받지 않습니다.

입력 스트림이 비동기적으로 닫히거나 읽기 중에 스레드가 중단되는 경우 동작은 고도로 입력 스트림에 따라 지정되지 않습니다.

입력 스트림에서 읽는 동안 I/O 오류가 발생하면 일부 바이트가 입력 스트림의 b 데이터로 업데이트된 후에 발생할 수 있습니다. 따라서 입력 스트림이 b 일관되지 않은 상태일 수 있습니다. I/O 오류가 발생할 경우 스트림을 즉시 닫는 것이 좋습니다.

9에 추가되었습니다.

에 대한 java.io.InputStream.readNBytes(byte[], int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상