BufferedStream 팁

밥벌이/Java 2015. 9. 18. 22:20

BufferedStream 의 경우 입출력 결과를 버퍼에 담아놨다가 입출력을 수행하기 때문에
버퍼링 기능을 하게 되고 건건이 입출력하는 것 보다 좋은 성능을 보여준다.

그런 이유로 JAVA에서 Stream을 사용할 경우 그대로 사용하지 않고

BufferedStream과 같은 보조스트림을 구현해서 사용하게 된다.

이때 불필요한 코딩을 줄일 수 있는 팁이 있다.

 

1. BufferedStream을 사용하고 close를 통해 Stream을 닫을 경우

기반이 되었던 Stream은 별도로 close 해줄 필요가 없다.

BufferedStream의 close()메소드에서 내부적으로 기반스트림에 대한

close()메소드를 수행하기 때문이다.

 

2. BufferedStream 의 경우 버퍼가 가득찼을 때만 출력소스에 출력을 하기 때문에

출력이 끝난 뒤 반드시 flush() 해주어 마지막에 버퍼에 있는 모든 내용이 출력될 수 있도록 해야한다.

하지만 출력뒤 바로 Stream을 닫아버리는 상황이라면 close()만 수행하면 되며,
별도로 flush()를 수행할 필요는 없다.
BufferedStream의 close()의 경우 조상인 File Stream의 close()를 그대로 상속받고
File Stream의 close()는 내부적으로 flush()를 수행한다음 close()를 수행하기 때문에
flush()를 수행하는 시점이 Stream을 끝내는 상황이라면 close()만으로
충분하다는 것이다. 

 

'밥벌이 > Java' 카테고리의 다른 글

VO, DTO 구분해서 사용해야 할까?  (0) 2020.07.16
XML파일의 활용  (0) 2015.09.18
Properties 파일 읽기  (0) 2015.09.18
Posted by mypiece
,