금방 이런일이 있었다.
FileInputStream 을 만들어 두고,
Http 응답헤더에 Content-Length를 만들어 주기위해
out.write("Content-Length: " + fis.readAllBytes().length)
를 해주고,
그 이후에 이미지 파일을 응답바디에 실어서 던져주는데 브라우저에서 출력을 못하는 것이었다.
while(true) {
int count = fis.read(buffer); // 위에서 readAllBytes() 를 호출했기 때문에 fis는 텅텅 비어있음.
if (count == -1) break;
out.write(buffer);
}
한참을 삽질하던 중
혹시 저 메서드를 호출할때 안에 있는 파일데이터들이 전부 날아가버리는 것이 아닐까라는 생각이 들었고,
저 부분을 주석처리하니 정상적으로 이미지파일이 브라우저에 출력되는것을 확인할 수 있었다.