|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.nio.Buffer
java.nio.ByteBuffer
java.nio.MappedByteBuffer
public abstract class MappedByteBuffer
파일의 메모리 맵 영역을 내용으로 하는 다이렉트 byte 버퍼입니다.
맵 된 byte 버퍼는,FileChannel.map
메소드로 작성됩니다. 이 클래스는, 맵 된 메모리 파일의 영역에 특유의 조작을 이용할 수 있도록(듯이),ByteBuffer
클래스를 확장하고 있습니다.
맙드 byte 버퍼와 이것에 의해 나타내지는 파일 매핑은, 버퍼 자체가 가베지 컬렉트될 때까지 유효합니다.
예를 들어, 하등의 프로그램에 의해, 맵 된 파일의 대응하는 영역의 내용이 변경되면, byte 버퍼의 내용도 변경됩니다. 이러한 변경이 발생할지 어떨지, 또 어느 타이밍에 발생할까는, operating system에 따라서 다르기 (위해)때문에, 미지정입니다.
맵 된 byte 버퍼 전체 또는 그 일부에 액세스 할 수 없게 되는 일이 있습니다. 예를 들어, 맵 된 파일이 절약하고를 하면(자), 이러한 사태가 발생합니다. 맵 된 byte 버퍼의 액세스 불가인 영역에 액세스 하려고 해도, 버퍼의 내용은 변경됩니다만, 액세스 했을 때 또는 그 후에 미지정의 예외가 throw 됩니다. 사전에 적절한 예방 조치를 취해, 이 프로그램이나 병행해 실행되고 있는 프로그램으로부터, 맵 된 파일에 대해서 read와 기입해 이외의 조작을 실행할 수 없게 하는 것을 강하게 추천합니다.
그 이외의 점에서는, 맵 된 byte 버퍼는 일반적으로의 다이렉트 byte 버퍼와 같이 동작합니다.
메소드의 개요 | |
---|---|
MappedByteBuffer |
force ()
현재의 버퍼의 컨텐츠에의 변경을, 맵 된 파일이 포함되고 있는 기억장치에 강제적으로 기입합니다. |
boolean |
isLoaded ()
현재의 버퍼의 컨텐츠가 물리 메모리내에 있을지 어떨지를 판단합니다. |
MappedByteBuffer |
load ()
현재의 버퍼의 컨텐츠를 물리 메모리에 로드합니다. |
클래스 java.nio. ByteBuffer 로부터 상속된 메소드 |
---|
allocate , allocateDirect , array , arrayOffset , asCharBuffer , asDoubleBuffer , asFloatBuffer , asIntBuffer , asLongBuffer , asReadOnlyBuffer , asShortBuffer , compact , compareTo , duplicate , equals , get , get , get , get , getChar , getChar , getDouble , getDouble , getFloat , getFloat , getInt , getInt , getLong , getLong , getShort , getShort , hasArray , hashCode , isDirect , order , order , put , put , put , put , put , putChar , putChar , putDouble , putDouble , putFloat , putFloat , putInt , putInt , putLong , putLong , putShort , putShort , slice , toString , wrap , wrap |
클래스 java.nio. Buffer 로부터 상속된 메소드 |
---|
capacity , clear , flip , hasRemaining , isReadOnly , limit , limit , mark , position , position , remaining , reset , rewind |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , finalize , getClass , notify , notifyAll , wait , wait , wait |
메소드의 상세 |
---|
public final boolean isLoaded()
반환값이 true 의 경우는, 현재의 버퍼내의 모든 데이터가 물리 메모리에 포함되고 있을 가능성이 높아집니다. 이 경우, 데이터에 액세스 했을 때에, 가상 메모리-의 페이지 위반이나 입출력 조작은 발생하지 않습니다. 다만, 반환값이 false 의 경우에서도, 버퍼의 내용이 물리 메모리에 포함되고 있는 일이 있습니다.
반환값은 절대적인 것은 아니고, 단순한 단서입니다. 왜냐하면, 이 메소드 호출이 값을 돌려줄 때까지 에, 기초에 있는 operating system에 의해 버퍼의 데이터의 일부가 페이지 아웃 되고 있을 가능성이 있기 때문입니다.
public final MappedByteBuffer load()
이 메소드는, 값을 돌려줄 때, 현재의 버퍼의 내용을 물리 메모리내로 할 수 있을 뿐(만큼) 포함하려고 합니다. 이 메소드를 호출하면(자), 페이지 위반이나 입출력 조작이 발생할 가능성이 있습니다.
public final MappedByteBuffer force()
현재의 버퍼에 맵 되는 파일이 로컬의 기억장치에 포함되고 있는 경우는, 파일을 작성하고 나서 또는 이 메소드를 마지막으로 호출하고 나서 간 모든 변경이, 값을 돌려줄 때 이 기억장치에 강제적으로 기입해집니다.
한편, 파일이 로컬의 기억장치상에 없는 경우, 기입은 행해지지 않습니다.
현재의 버퍼가 읽어들여/기입 모드 (FileChannel.MapMode.READ_WRITE
)로 맵되어 있지 않았던 경우는, 이 메소드를 호출해도 아무것도 일어나지 않습니다.
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.