마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ByteBuffer에 대해서 질문합니다

0 추천

제가 하고싶은거는

byte[] data = new byte[1024];

byte[] data1 = new byte[1012];

ByteBuffer buffer = ByteBuffer.wrap(data);

buffer.read(data1, 12, data.length); <<이렇게 하면 에러가 나네요

data배열에 있는 데이터를 12번쨰 부터 끝까지 data1에 대가 넣고싶거든요?

data배열에 있는 값중에서 내가 원하는 부분을 data1배열로 읽어들이는 방법이 for문이나 while문을 사용하지 않고 stream을 이용해서 읽어드리는 방법이 궁굼합니다.

익명사용자 님이 2013년 3월 5일 질문

1개의 답변

0 추천

ByteBuffer에 read 메소드가 있나요? 흠..한번 돌려보려고 했더니 전 왜 메소드가 없는지..

돌려보고 답을 드리려고 했는데..쩝..여하튼 소스상으로 봤을때.(어디까지나 추측입니다.)

data1의 사이즈는 1012이고 data의 사이즈는 1024라고 하셨는데.

buffer.read부분에 세번째 인자로 data의 lenght를 주셨네요.. 아마도 int형으로 받지 않을까 싶은데(메소드를 못봐서리...1012개만 보내주시면 되지 않을까 싶네요. 즉 세번째 인자를 data.length - 12 하면 되지 않을까 싶습니다.

buffer.read(data1, 12, data.length - 12);

바람처럼살리라 (370 포인트) 님이 2013년 3월 5일 답변
아 제가 오타했네요ㅎㅎ
buffer.get(data1, 12, data1.length); 이거입니다..ㅠㅠ
지금 stream관련 이것저것 해보다 보니 헷갈렸네요..
...