Java에서 파일에 텍스트를 쓸 때 BufferedWriter를 사용하고 있습니다. 그러나 생성자에서 사용자 지정 버퍼 크기를 제공하고 있습니다. 문제는, 내가 쓴 크기 (예를 들어, 버퍼 크기를 8KB로 지정하면 파일이 8KB로 한 번 기록됨)와 상관없이 파일에 씁니다. 그러나 Bufferedwriter 객체에 의해 점유 된 메모리 (YourKit 프로파일 러 사용)를 보면 실제로 주어진 버퍼 크기의 두 배 (이 경우 16KB)입니다.BufferedWriter 버퍼 크기 및 점유 메모리
내부 구현을 살펴보고 왜 이런 현상이 발생하는지 살펴 보았습니다. 주어진 크기의 문자 배열을 생성하고 있음을 알았습니다. 그리고 배열에 쓸 때 각 char이 2 바이트를 차지할 때 버퍼 크기의 두 배를 차지한다는 것은 의미가 있습니다.
내 질문은, 어떻게 버퍼링 된 16KB 버퍼에이 경우 8KB 만 쓰기 BufferedWriter 것입니다. 그리고 기술적으로 정확한가? 버퍼가 16KB이기 때문에 매번 8KB (반) 만 플러시하기 때문에.
고마워요. @Stephen C. 지금 더 나은 통찰력을 얻었습니다. – Ravi