2015년 1월 14일 수요일

ByteArrayOutputStream 사용

먼저 outputstream 이니 개념부터 보는 것이 좋다( 링크 - 입출력 스트림의 개념 )

ByteArrayOutputStream는 실질적으로 저장소로 사용된다

즉, 바이트 배열 저장소나 다름없다

byte[]에 저장하지 않고 번거롭게 저기다가 저장하는 것일까
사실은 ByteArrayOutputStream 역시 byte[]에 저장한다
내부적으로 byte[]에 저장하고 그걸 새로운 데이터가 들어올때마다
다시 확장하고 카피하고 하는 byte[]를 편리하게 쓰기 위한 유틸인 것이다

그냥 String 처럼 기본적이고 깔끔하게 만들면 안될까?

byte배열의 경우 금방쓰고 버리고 하는 빈도가 높기때문에
GC(garbage collection)이 자주 작동하게 되고 성능에 영향을 준다

그렇기때문에 좀더 효율적인 것을 만들게 된 것이다
그래서 나온것이 ByteBufferByteArrayOutputStream이다
이 중 ByteArrayOutputStream은 정확한 길이를 모를때 효과적이다

1
2
3
4
5
6
7
8
9
10
11
ByteArrayOutputStream out = new ByteArrayOutputStream();
InputStream in = connection.getInputStream();
 
int byteRead = 0;
//inpustream가 한번에 가능한 최대치만큼 설정
byte[] buffer = new byte[in.available()]; 
while((byteRead = in.read(buffer))>0){
   out.write(buffer, 0, byteRead);
}
out.close();
return out.toByteArray();

참고로 ByteArrayOutputStream의 close()와 flush() 메서드는
아무런 구현이 되어 있지 않다. 엄밀하게 말해서 사실상 stream하곤 관계없으니 말이다

Written with StackEdit.

Related Posts:

  • Git 시작하기Git 버전 관리 시스템의 개념 버전 관리 시스템 Git는 사실 어렵지 않다. 하지만 어려워 보인다 그 이유는 무지 어려워 보이는 용어 이미 익숙해진 사람들이 개념대신 자신이 사용하는 방법을 가르침 요렇게 두가지가 있다고 본다 그래서 그걸 쉽게 한번 풀어 보겠다 먼저 버전 관리 시스템 버전(version) 이란 ~~판을 말한다. 쉽게 말해 ‘초판, 개정판’라고 들어봤을 것이다 … Read More
  • 컴퓨터와 이진수목차 이진수란 컴퓨터에서의 이진수 이진수란 두 가지의 표현방식을 가지는 것을 이진법이라 한다 세 가지라면 삼진법, 네 가지라면 사진법이다 수업시간에 질문하기를 손을 들고 내리는 방식으로 정의하면 이진법이다. 손을 든다, 내린다 두가지이므로.. 일주일은 요일을 표현하는 7진법이다 그러한 진법들의 각 표현에다가 수로 대응한 것이 진수이다 이진수의 경우 두 가지 표현의 각… Read More
  • ByteArrayOutputStream 사용먼저 outputstream 이니 개념부터 보는 것이 좋다( 링크 - 입출력 스트림의 개념 ) ByteArrayOutputStream는 실질적으로 저장소로 사용된다 즉, 바이트 배열 저장소나 다름없다 왜 byte[]에 저장하지 않고 번거롭게 저기다가 저장하는 것일까 사실은 ByteArrayOutputStream 역시 byte[]에 저장한다 내부적으로 byte[]에 저장하고 그걸 새로운 데이터… Read More
  • 프로그래밍에서 용어와 영어의 중요성이름 짓기 프로그래밍을 배우면서 영어권 애들이 진짜 부러웠던게 바로 이 언어문제다. 어떤 프로그래밍 용어든.. 그것이 선정될 때는 개 이름 짓듯이 별탱이, 다롱이처럼 하지 않고 가장 그것의 용도를 적합하게 나타내는 이름으로 짓는다 그래서 용어가 자국어인 사람들은 훨씬 빨리 이해하고 배울 수 있다 영어권이 아닌 나라들 그럼 영어권이 아닌 나라들은? 당연하지만 번역해서 쓴다 그중에선 도저… Read More
  • xpath 의 개념과 문법목차 xpath의 개념 xpath의 Node xpath 문법 element xpath의 개념 우린 파일을 찾을때 탐색기를 이용한다 탐색기는 미지의 장소를 그냥 탐험하는게아니라 길, 즉 path를 따라가서 원하는 곳을 찾아내는데 C:\windows\System32\important\왜가리 위와 같은 형식이고 이것이 윈도의 path 문법이다 마찬가지로 xml도 원하는… Read More

0 개의 댓글 :

댓글 쓰기