저는 서버 클라이언트 아키텍처를 채택한 프로젝트를 진행하고 있습니다. 클라이언트와 서버간에 전송되는 메시지는 문자열과 바이트 배열의 조합입니다. 나는 전체 메시지의 크기를 미리 보내야합니다.소켓의 출력 스트림에 문자열 쓰기
바이트 배열의 바이트 크기를 찾는 것은 간단하지만 문자열에서는 그렇지 않습니다. 분명히, 나는 그 문자열들을 바이트 배열로 변환 할 수있다. 그러나이 문자열은 길어서 사본을위한 메모리를 할당하고 싶지 않습니다 (예 : getBytes()가 새 배열을 할당 함).
제 질문은 다음 중 가장 효율적인 메모리 사용 방법은 무엇입니까? 문자열
- 찾기 바이트 크기 출력 스트림
try DataOutputStream. javadoc 보이기 – andy
@andy 미리 쓰려고하는 문자열의 크기를 알 수 있습니까? – mostruash
얼마나 오래 "길다"며 실제로 복사에 필요한 공간/시간이 엄청 났음을 증명 했습니까? 'CharsetEncoder'를 사용하여이 작업을 수행하는 것이 타당 할 수도 있지만 (바이트 카운팅 부분은 비교적 간단합니다.)하지만 더 복잡한 작업을 수행하기 전에 가능한 가장 단순한 방법으로는 충분하지 않다는 것을 증명할 가치가 있다고 생각합니다. –