[Java] java.io.IOException: Stream Closed

안녕하세요.. 게으르게나마 기록하는 n년차 개발자입니다..

이 문제는 입출력 stream을 닫았는데 다시 입출력 작업을 시도할 때 발생합니다. 

간단히 문제를 해결하기 위해 new연산자를 이용해 입출력 스트림을 다시 생성해주면 됩니다.

try {
  InputStream inputStream = new FileInputStream("file.txt");
  // 파일 읽는 작업 수행
  inputStream.close(); // inputStream 닫기

  // inputStream이 닫힌 이후에 다시 작업을 시도하면 에러가 발생합니다.
  // 따라서 inputStream을 다시 생성해주면 됩니다.
  inputStream = new FileInputStream("file.txt");
  // 다시 파일 읽는 작업 수행
} catch (IOException e) {
  e.printStackTrace();
}

 

근데 모든 경우에 입출력 스트림을 다시 생성한다고 답이 있는건 아니죠. 소스가 예시처럼 간단한 소스라면 모르겠지만 복잡한 소스라면 연계된 다른 문제가 있을수 있으니 객체를 재생성해도 답이없다면 로깅과 디버깅만이 답이라고 생각합니다.. 그러니 꼭 try catch를 통해 에러로그를 확인하시고 예외처리를 생활화 하시는걸 추천드립니다.

감사합니다.

그럼 20000

반응형