본문 바로가기
개발/자바

ByteBuffer 바이트버퍼

by darksilber 2011. 6. 22.
반응형
NIO 클래스의 버퍼중 유일하게 다이렉트 버퍼(힙이 아닌 일반메모리에 접근)로 만들 수 있고
다른 유형의 버퍼로 변환 가능


buffer 구성요소

capacity(용량) : 버퍼가 사용할 수 있는 최대 크기. 음수가 될 수 없으며 한번 정하면 바꿀 수 없음
limit(끝점) : 버퍼에서 읽거나 쓸 수 있는 위치의 한계를 나타냄. capacity와 같거나 작고 음수가 될 수 없음
position(위치) : 현재 읽거나 쓸 수 있는 버퍼의 위치값. position이 limit와 같다면 데이터를 읽거나 쓸 수 없음
mark(위치지정) : 현재 버퍼의 position을 표시,사용자 지정, 위치를 기억하다 돌아갈 일이 있을때 사용

0<=mark<=position<=limit<=capacity

buffer 주요 메서드

get/put :
데이터를 읽거나 쓸때
put으로 데이터를 쓰게되면 position이 이동하고 limit까지 도달 가능

clear :
데이터의 실제 데어터를 삭제 하는것이 아니라 position을 0으로 설정, limit를 capacity로 설정하여 다시 쓸 수 있게 함

rewind :
position을 0으로 하고 mark를 제거해
put메서드로 설정한 값을 취소하고 다시 설정하거나 처음부터 끝까지 읽기위한 목적으로 사용

flip :
limit를 현재 position으로 설정하고 position을 다시 0으로 설정, mark가 있다면 제거
put 한것을 처음부터 현재 position까지 읽기 위해 사용

반응형

댓글