[Java] BufferedOutputStream 대 ByteArrayOutputStream


Answers

일반적으로 BufferedOutputStream 래퍼는 디스크 또는 네트워크 잦은 쓰기를 방지하기 위해 주로 사용됩니다. 다소 큰 작업을 수행하는 것보다 작은 조각을 많이 작성하는 것이 훨씬 더 비쌉니다. ByteArrayOutputStream은 메모리에서 작동하므로 래핑이 의미가 없다고 생각합니다.

정답을 알고 싶다면 간단한 성능 측정 응용 프로그램을 만들어보십시오.

Question

ByteArrOutputStream을 단독으로 사용하는 대신 ByteArrayOutputStream 주위에 BufferedOutputStream을 래핑하는 데 어떤 이점이 있습니까?




고성능을 원한다면 ByteArrayOutputStream을 사용하지 않는 것이 좋지만 한 가지 흥미로운 기능은 알 수없는 길이의 메시지를 보내는 것입니다. 이 두 가지 방법이 어떻게 작동하는지 더 잘 이해하려면 http://java-performance.info/java-io-bytearrayoutputstream/을 참조하십시오.




절대 없음. BufferedWriter와 BufferedReader는 문자열에 대해 조작해야한다는 추가 기능을 제공하지만.