Share via


FileChannel 클래스

정의

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

[Android.Runtime.Register("java/nio/channels/FileChannel", DoNotGenerateAcw=true)]
public abstract class FileChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IGatheringByteChannel, Java.Nio.Channels.IScatteringByteChannel, Java.Nio.Channels.ISeekableByteChannel
[<Android.Runtime.Register("java/nio/channels/FileChannel", DoNotGenerateAcw=true)>]
type FileChannel = class
    inherit AbstractInterruptibleChannel
    interface IByteChannel
    interface IReadableByteChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IWritableByteChannel
    interface IGatheringByteChannel
    interface IScatteringByteChannel
    interface ISeekableByteChannel
상속
특성
구현

설명

파일을 읽고, 쓰고, 매핑하고, 조작하기 위한 채널입니다.

파일 채널은 SeekableByteChannel 파일에 연결된 입니다. 파일 내에 및 #position(long) <i>modified</i>가 모두 #position() <i>queried</i> 될 수 있는 현재 위치가 있습니다. 파일 자체에는 읽고 쓸 수 있고 현재 #size <i>size</i> 를 쿼리할 수 있는 가변 길이 바이트 시퀀스가 포함되어 있습니다. 바이트가 현재 크기를 초과하여 작성되면 파일 크기가 증가합니다. 파일 크기는 인 경우 #truncate <i>truncated</i>감소합니다. 파일에 액세스 권한, 콘텐츠 형식 및 마지막 수정 시간과 같은 일부 관련 메타데이터 가 있을 수도 있습니다. 이 클래스는 메타데이터 액세스에 대한 메서드를 정의하지 않습니다.

이 클래스는 바이트 채널의 친숙한 읽기, 쓰기 및 닫기 작업 외에도 다음과 같은 파일 관련 작업을 정의합니다.

<ul>

<리튬>

바이트는 채널의 현재 위치에 영향을 주지 않는 방식으로 파일의 절대 위치에 있거나 있을 #read(ByteBuffer, long) read#write(ByteBuffer, long) <i>written</i> 수 있습니다.

</리튬>

<리튬>

파일 영역이 메모리에 직접 포함될 수 있습니다 #map <i>mapped</i> . 대용량 파일의 경우 일반적인 read 또는 write 메서드를 호출하는 것보다 훨씬 더 효율적입니다.

</리튬>

<리튬>

파일에 대한 업데이트 기본 스토리지 디바이스일 수 #force <i>forced out</i> 있으므로 시스템 충돌 시 데이터가 손실되지 않도록 합니다.

</리튬>

<리튬>

바이트는 파일 , 및 #transferFrom <i>vice versa</i>에서 #transferTo <i>to some other channel</i>많은 운영 체제에서 파일 시스템 캐시로 직접 또는 파일 시스템 캐시에서 매우 빠른 전송으로 최적화할 수 있는 방식으로 전송할 수 있습니다.

</리튬>

<리튬>

파일의 영역이 다른 프로그램의 액세스에 반대될 FileLock <i>locked</i> 수 있습니다.

</리튬>

</ul>

파일 채널은 여러 동시 스레드에서 사용하기에 안전합니다. 메서드는 Channel#close close 인터페이스에서 지정 Channel 한 대로 언제든지 호출될 수 있습니다. 채널의 위치를 포함하거나 파일의 크기를 변경할 수 있는 하나의 작업만 지정된 시간에 진행 중일 수 있습니다. 첫 번째 작업이 아직 진행 중인 동안 두 번째 작업을 시작하려고 하면 첫 번째 작업이 완료될 때까지 차단됩니다. 다른 작업, 특히 명시적 위치를 사용하는 작업은 동시에 진행될 수 있습니다. 실제로 그렇게 하는지 여부는 기본 구현에 따라 달라지므로 지정되지 않습니다.

이 클래스의 instance 제공된 파일 보기는 동일한 프로그램의 다른 인스턴스에서 제공하는 동일한 파일의 다른 보기와 일치하도록 보장됩니다. 그러나 이 클래스의 instance 제공하는 보기는 기본 운영 체제에서 수행하는 캐싱 및 네트워크 파일 시스템 프로토콜에 의해 유발된 지연으로 인해 동시에 실행되는 다른 프로그램에서 볼 수 있는 보기와 일치할 수도 있고 그렇지 않을 수도 있습니다. 이는 이러한 다른 프로그램이 작성된 언어와 동일한 컴퓨터에서 실행되는지 또는 다른 컴퓨터에서 실행되는지에 관계없이 마찬가지입니다. 이러한 불일치의 정확한 특성은 시스템에 따라 달라지므로 지정되지 않습니다.

이 클래스에서 정의한 메서드 중 #open open 하나를 호출하여 파일 채널을 만듭니다. 동일한 기본 파일에 연결된 파일 채널을 반환하는 해당 개체의 getChannel 메서드를 호출하여 기존 java.io.FileInputStream#getChannel FileInputStream, java.io.FileOutputStream#getChannel FileOutputStream또는 java.io.RandomAccessFile#getChannel RandomAccessFile 개체에서 파일 채널을 가져올 수도 있습니다. 파일 채널이 기존 스트림 또는 임의 액세스 파일에서 가져온 경우 파일 채널의 상태는 메서드가 채널을 반환한 getChannel 개체의 상태에 밀접하게 연결됩니다. 명시적으로 또는 바이트를 읽거나 쓰는 채널의 위치를 변경하면 원래 개체의 파일 위치가 변경되고 그 반대의 경우도 마찬가지입니다. 파일 채널을 통해 파일의 길이를 변경하면 원래 개체를 통해 표시되는 길이가 변경되고 그 반대의 경우도 마찬가지입니다. 바이트를 작성하여 파일의 콘텐츠를 변경하면 원래 개체에서 볼 수 있는 콘텐츠가 변경되고 그 반대의 경우도 마찬가지입니다.

"오픈 모드">

다양한 지점에서 이 클래스는 "읽기 위해 열려 있음", "쓰기를 위해 열려 있음" 또는 "읽기 및 쓰기를 위해 열기"인 instance 필요하다고 지정합니다. instance 메서드를 java.io.FileInputStream#getChannel getChanneljava.io.FileInputStream 통해 얻은 채널이 읽기 위해 열립니다. instance 메서드를 java.io.FileOutputStream#getChannel getChanneljava.io.FileOutputStream 통해 얻은 채널은 쓰기를 위해 열립니다. 마지막으로, instance 메서드 java.io.RandomAccessFile 를 통해 java.io.RandomAccessFile#getChannel getChannel 얻은 채널은 instance 모드로 만들어진 경우 읽기용으로 열리고 instance 모드 "r""rw"로 만들어진 경우 읽기 및 쓰기를 위해 열립니다.

"추가 모드">

쓰기용으로 열려 있는 파일 채널은 추가 모드일 수 있습니다. 예를 들어 생성자를 호출하고 두 번째 매개 변수를 전달 true 하여 java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) 만든 파일 출력 스트림에서 가져온 경우입니다. 이 모드에서 상대 쓰기 작업의 각 호출은 먼저 위치가 파일의 끝으로 이동하고 요청된 데이터를 씁니다. 위치의 발전과 데이터 쓰기가 단일 원자성 작업에서 수행되는지 여부는 시스템에 따라 달라지므로 지정되지 않습니다.

1.4에 추가되었습니다.

에 대한 Java 설명서입니다 java.nio.channels.FileChannel.

이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

FileChannel()

이 클래스의 새 인스턴스를 초기화합니다.

FileChannel(IntPtr, JniHandleOwnership)

JNI 개체의 관리형 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
IsOpen

이 채널이 열려 있으면 true를 반환합니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
JniIdentityHashCode

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
JniPeerMembers

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

PeerReference

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

Begin()

무기한 차단할 수 있는 I/O 작업의 시작을 표시합니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Close()

이 채널을 닫습니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
Dispose()

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
End(Boolean)

무기한 차단할 수 있는 I/O 작업의 끝을 표시합니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
Force(Boolean)

이 채널의 파일에 대한 업데이트를 포함하는 스토리지 디바이스에 기록하도록 강제 적용합니다.

ForceAsync(Boolean)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

GetHashCode()

개체의 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
ImplCloseChannel()

이 채널을 닫습니다.

(다음에서 상속됨 AbstractInterruptibleChannel)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Lock()

이 채널의 파일에 대한 단독 잠금을 획득합니다.

Lock(Int64, Int64, Boolean)

이 채널 파일의 지정된 영역에 대한 잠금을 획득합니다.

Map(FileChannel+MapMode, Int64, Int64)

이 채널 파일의 영역을 메모리에 직접 매핑합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
Open(IPath, ICollection<IOpenOption>, IFileAttribute[])

파일에 액세스하기 위해 파일 채널을 반환하여 파일을 열거나 만듭니다.

Open(IPath, IOpenOption[])

파일에 액세스하기 위해 파일 채널을 반환하여 파일을 열거나 만듭니다.

Position()

이 채널의 파일 위치를 반환합니다.

Position(Int64)

이 채널의 파일 위치를 설정합니다.

Read(ByteBuffer)

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

Read(ByteBuffer, Int64)

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

Read(ByteBuffer[])

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

Read(ByteBuffer[], Int32, Int32)

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

ReadAsync(ByteBuffer)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ReadAsync(ByteBuffer, Int64)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ReadAsync(ByteBuffer[])

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ReadAsync(ByteBuffer[], Int32, Int32)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
Size()

이 채널 파일의 현재 크기를 반환합니다.

ToArray<T>()

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
TransferFrom(IReadableByteChannel, Int64, Int64)

지정된 읽을 수 있는 바이트 채널에서 바이트를 이 채널의 파일로 전송합니다.

TransferFromAsync(IReadableByteChannel, Int64, Int64)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

TransferTo(Int64, Int64, IWritableByteChannel)

이 채널의 파일에서 지정된 쓰기 가능한 바이트 채널로 바이트를 전송합니다.

TransferToAsync(Int64, Int64, IWritableByteChannel)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

Truncate(Int64)

이 채널의 파일을 지정된 크기로 자립니다.

TruncateAsync(Int64)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

TryLock()

이 채널의 파일에 대한 배타적 잠금을 획득하려고 시도합니다.

TryLock(Int64, Int64, Boolean)

이 채널 파일의 지정된 영역에 대한 잠금을 획득하려고 시도합니다.

UnregisterFromRuntime()

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 깨어날 때까지 대기하게 합니다( 일반적으로 <알림을 받><거나 <>중단/>em>)합니다<.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 깨어날 때까지 대기하게 합니다. 일반적으로 <>알림을 받<거나 <중단</>내보내>>거나 일정량의 실시간이 경과할 때까지 대기합니다.

(다음에서 상속됨 Object)
Write(ByteBuffer)

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

Write(ByteBuffer, Int64)

지정된 파일 위치에서 시작하여 지정된 버퍼에서 이 채널에 바이트 시퀀스를 씁니다.

Write(ByteBuffer[])

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

Write(ByteBuffer[], Int32, Int32)

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

WriteAsync(ByteBuffer)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

WriteAsync(ByteBuffer, Int64)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

WriteAsync(ByteBuffer[])

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

WriteAsync(ByteBuffer[], Int32, Int32)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

명시적 인터페이스 구현

IJavaPeerable.Disposed()

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

(다음에서 상속됨 Object)
ISeekableByteChannel.Position(Int64)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ISeekableByteChannel.Truncate(Int64)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

GetJniTypeName(IJavaPeerable)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

WriteAsync(IGatheringByteChannel, ByteBuffer[])

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ReadAsync(IReadableByteChannel, ByteBuffer)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ReadAsync(IScatteringByteChannel, ByteBuffer[])

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

WriteAsync(IWritableByteChannel, ByteBuffer)

파일 읽기, 쓰기, 매핑 및 조작을 위한 채널입니다.

적용 대상