2012-09-19 2 views
3

Apache의 POI HSSFWorkbook의 파일 크기는 어떻게 얻을 수 있습니까?HSSFWorkbook 길이 가져 오기

나는

// inside Servlet 
OutputStream out = response.getOutputStream(); 
hSSFWorkbook.write(out); 

과 같은 코드를 가지고 내가 응답 Content-Length 헤더를 추가 할 수 있습니다.

+0

POI와 함께 일한 적은 없지만 바이트 크기를 계산하는 바이트 배열을 반환하는 getBytes()의 Javadocs리스트가 보인다. – asgs

+0

@asgs 미안하지만,'HSSFWorkbook' (구현)이 아닌'Workbook' (인터페이스)를 사용합니다. 그것을 말하지 마라. – MyTitle

답변

4

가장 좋은 방법은, 어딘가에 버퍼 만 시간에 크기를 계산합니다

POI에 버퍼 메모리를 사용하지 않도록하기를 원한다면 예를 들어

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
workbook.write(baos); 

int length = baos.size(); 
// Send length... 

// Send data 
OutputStream out = response.getOutputStream(); 
out.write(baos.toByteArray()); 
out.close(); 

당신은 대신 임시 파일을 사용할 수 있습니다 크기 조정 작업이 거의 절반 밖에되지 않으므로 모든 것을 작성해야합니다. 그래서, 당신은 최고의 크기와 직렬화를 얻는 것이 가장 좋다.

관련 문제