Stream read() method에 대한 고찰

현이·2022년 9월 21일
0

고찰

목록 보기
3/6

금방 이런일이 있었다.

FileInputStream 을 만들어 두고,
Http 응답헤더에 Content-Length를 만들어 주기위해

out.write("Content-Length: " + fis.readAllBytes().length)

를 해주고,

그 이후에 이미지 파일을 응답바디에 실어서 던져주는데 브라우저에서 출력을 못하는 것이었다.

  • img 응답바디 전송 코드
while(true) {
	int count = fis.read(buffer); // 위에서 readAllBytes() 를 호출했기 때문에 fis는 텅텅 비어있음.
    if (count == -1) break;
    out.write(buffer);
}

한참을 삽질하던 중

혹시 저 메서드를 호출할때 안에 있는 파일데이터들이 전부 날아가버리는 것이 아닐까라는 생각이 들었고,

저 부분을 주석처리하니 정상적으로 이미지파일이 브라우저에 출력되는것을 확인할 수 있었다.

profile
의미있는 고찰

0개의 댓글