다음을 통해 공유


Pipe.SourceChannel.Read 메서드

정의

오버로드

Read(ByteBuffer)

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

Read(ByteBuffer[])

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

Read(ByteBuffer[], Int32, Int32)

이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다.

Read(ByteBuffer)

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")]
public abstract int Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)I", "GetRead_Ljava_nio_ByteBuffer_Handler")>]
abstract member Read : Java.Nio.ByteBuffer -> int

매개 변수

dst
ByteBuffer

바이트를 전송할 버퍼입니다.

반환

읽은 바이트 수( 0일 수 있음) 또는 -1 채널이 스트림 끝에 도달한 경우

구현

특성

설명

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

채널에서 r 바이트까지 읽으려고 시도합니다. 여기서 r은 버퍼에 남아 있는 바이트 수, 즉 dst.remaining()이 메서드가 호출되는 순간입니다.

길이 n 의 바이트 시퀀스가 읽혀진 경우 0여기서  <= n <= r. 이 바이트 시퀀스는 시퀀스의 첫 번째 바이트가 인덱스 p에 있고 마지막 바이트가 인덱스 p +에 있도록 버퍼로 전송됩니다. n - 1, 여기서 p는 이 메서드가 호출되는 순간에 버퍼의 위치입니다. 반환 시 버퍼의 위치는 p +같습니다. n; 해당 제한은 변경되지 않습니다.

읽기 작업이 버퍼를 채우지 못할 수 있으며 실제로는 바이트를 전혀 읽지 않을 수 있습니다. 그렇게 하는지 여부는 채널의 특성과 상태에 따라 달라집니다. 예를 들어 비차단 모드의 소켓 채널은 소켓의 입력 버퍼에서 즉시 사용할 수 있는 것보다 더 많은 바이트를 읽을 수 없습니다. 마찬가지로 파일 채널은 파일에 남아 있는 것보다 더 이상 바이트를 읽을 수 없습니다. 그러나 채널이 차단 모드에 있고 버퍼에 하나 이상의 바이트가 남아 있는 경우 이 메서드는 하나 이상의 바이트를 읽을 때까지 차단됩니다.

이 메서드는 언제든지 호출될 수 있습니다. 그러나 다른 스레드가 이미 이 채널에서 읽기 작업을 시작한 경우 첫 번째 작업이 완료될 때까지 이 메서드 호출이 차단됩니다.

에 대한 java.nio.channels.ReadableByteChannel.read(java.nio.ByteBuffer)Java 설명서

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

적용 대상

Read(ByteBuffer[])

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;)J", "GetRead_arrayLjava_nio_ByteBuffer_Handler")>]
abstract member Read : Java.Nio.ByteBuffer[] -> int64

매개 변수

dsts
ByteBuffer[]

바이트를 전송할 버퍼

반환

읽은 바이트 수( 0일 수 있음) 또는 -1 채널이 스트림 끝에 도달한 경우

구현

특성

설명

이 채널에서 지정된 버퍼로 바이트 시퀀스를 읽습니다.

양식 c.read(dsts) 의 이 메서드 호출은 호출과 정확히 동일한 방식으로 동작합니다.

<blockquote>

c.read(dsts, 0, dsts.length);

</blockquote>

에 대한 java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[])Java 설명서

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

적용 대상

Read(ByteBuffer[], Int32, Int32)

이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")]
public abstract long Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;II)J", "GetRead_arrayLjava_nio_ByteBuffer_IIHandler")>]
abstract member Read : Java.Nio.ByteBuffer[] * int * int -> int64

매개 변수

dsts
ByteBuffer[]

바이트를 전송할 버퍼

offset
Int32

바이트를 전송할 첫 번째 버퍼의 버퍼 배열 내 오프셋입니다. 은 음수가 아니어야 하며 다음보다 크지 않아야 합니다. dsts.length

length
Int32

액세스할 최대 버퍼 수입니다. 는 음수가 아니고  - 보다 dsts.length크지 않아야 합니다.offset

반환

읽은 바이트 수( 0일 수 있음) 또는 -1 채널이 스트림 끝에 도달한 경우

구현

특성

설명

이 채널에서 지정된 버퍼의 하위 시퀀스로 바이트 시퀀스를 읽습니다.

이 메서드를 호출하면 이 채널에서 최대 r 바이트를 읽으려고 합니다. 여기서 r은 지정된 버퍼 배열의 지정된 하위 시퀀스에 남아 있는 총 바이트 수입니다.

<blockquote>

dsts[offset].remaining()
                + dsts[offset+1].remaining()
                + ... + dsts[offset+length-1].remaining()

</blockquote>

이 메서드가 호출되는 순간

길이 n 의 바이트 시퀀스가 읽혀진 경우 0여기서  <= n <= r. 이 시퀀스의 첫 번째 dsts[offset].remaining() 바이트까지 버퍼로 전송되고, 전체 바이트 시퀀스가 지정된 버퍼 dsts[offset]로 전송될 때까지 최대 다음 dsts[offset+1].remaining() 바이트가 버퍼 dsts[offset+1]로 전송됩니다. 가능한 한 많은 바이트가 각 버퍼로 전송되므로 마지막 업데이트된 버퍼를 제외한 각 업데이트된 버퍼의 최종 위치는 해당 버퍼의 제한과 같아야 합니다.

이 메서드는 언제든지 호출될 수 있습니다. 그러나 다른 스레드가 이미 이 채널에서 읽기 작업을 시작한 경우 첫 번째 작업이 완료될 때까지 이 메서드 호출이 차단됩니다.

에 대한 java.nio.channels.ScatteringByteChannel.read(java.nio.ByteBuffer[], int, int)Java 설명서

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

적용 대상